跳至內容

如何掛載或卸載我的 Amazon EFS 檔案系統?

4 分的閱讀內容
0

我想掛載、自動掛載,或針對我的 Amazon Elastic File System (Amazon EFS) 檔案系統進行內部部署掛載。或者,我想卸載我的 EFS 檔案系統。

解決方法

注意: 若要掛載您的 EFS 檔案系統,請使用 Amazon EFS 用戶端 amazon-efs-utils 或 NFS 公用程式套件 nfs-utils。如需 NFS 公用程式套件的資訊,請參閱 Mankier 網站上的 Package nfs-utils (套件 nfs-utils)。

使用 Amazon EFS 客戶端掛載 Amazon EFS 檔案系統

為您的發行版本安裝 Amazon EFS 用戶端

若要安裝 amazon-efs-utils,請根據您的發行版本執行下列其中一個命令:

Amazon Linux 1、Amazon Linux 2 和 Amazon Linux 2023 (AL2023):

sudo yum install -y amazon-efs-utils

不含 yum 的 AL2023 Amazon Machine Image (AMI):

sudo dnf install -y amazon-efs-utils

Ubuntu 和 Debian:

sudo apt-get update
sudo apt-get -y install git binutils rustc cargo pkg-config libssl-dev
git clone https://github.com/aws/efs-utils
cd efs-utils
./build-deb.sh
sudo apt-get -y install ./build/amazon-efs-utils*deb

注意: 某些 Ubuntu 與 Debian 發行版本在其套件儲存庫中未包含 rustcargo,或者可能包含早於 1.70 的版本。如果 apt-get install 命令因缺少或過期的 Rust 工具鏈而失敗,請在執行 build-deb.sh 之前執行下列命令:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"

OpenSUSE 或 SUSE Linux Enterprise Server (SLES):

sudo zypper refresh
sudo zypper install -y git rpm-build make rust cargo openssl-devel
git clone https://github.com/aws/efs-utils
cd efs-utils
make rpm
sudo zypper --no-gpg-checks install -y build/amazon-efs-utils*rpm

所有其他發行版本:

sudo yum -y install git rpm-build make rust cargo openssl-devel
git clone https://github.com/aws/efs-utils
cd efs-utils
make rpm
sudo yum -y install build/amazon-efs-utils*rpm

將您的 Amazon EFS 檔案系統連線到您的 Amazon EC2 執行個體

請完成下列步驟:

  1. 開啟 Amazon EFS 主控台
  2. 在導覽窗格選擇 File systems (檔案系統)。
  3. 選取您的 EFS 檔案系統。
  4. 若要查看 Mount (掛載) 命令,請選擇 Attach (附加)。
  5. 使用 SSH 或 AWS Systems Manager 的功能 Session Manager,連線到您的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。
  6. 若要建立掛載點目錄並將 EFS 檔案系統掛載至這些目錄,請執行下列命令:
    sudo mkdir -p /mnt/efs
    sudo mkdir -p /mnt/efs-ap
    sudo mount -t efs -o tls fs-12345678:/ /mnt/efs
    sudo mount -t efs -o tls,accesspoint=fsap-12345678 fs-01233210 /mnt/efs-ap
    注意: 請將 fs-12345678fs-01233210 替換為您的 EFS 檔案系統 ID,並將 fsap-12345678 替換為您的 EFS 存取點 ID。

使用 NFS 公用程式套件掛載 Amazon EFS 檔案系統

為您的發行版本安裝 NFS 公用程式套件

若要安裝 nfs-utils 套件,請根據您的發行版執行下列其中一個命令:

RHEL 和 CentOS:

sudo yum -y install nfs-utils

不含 yum 的 Linux 發行版本:

sudo dnf install -y nfs-utils

Ubuntu:

sudo apt install nfs-common

將您的 Amazon EFS 檔案系統連線到您的 Amazon EC2 執行個體

  1. 開啟 Amazon EFS 主控台
  2. 在導覽窗格選擇 File systems (檔案系統)。
  3. 選取您的 EFS 檔案系統。
  4. 若要查看 Mount (掛載) 命令,請選擇 Attach (附加)。
  5. 使用 SSH 或 Session Manager 連線到您的 EC2 執行個體。
  6. 若要將 EFS 檔案系統掛載至本機目錄,請執行下列命令:
    sudo mkdir -p /mnt/efs  #creating the efs-mount-point
    sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-DNS:/   /mnt/efs
    注意: 請將 mount-target-DNS 替換為您的虛擬私有雲端 (VPC) 中 EFS 掛載目標的 DNS 名稱。
    或者,若要使用 IP 位址來掛載檔案系統,請執行下列命令:
    sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  /mnt/efs
    注意: 請將 mount-target-ip 替換為 VPC 中 EFS 掛載目標的 IP 位址。

自動掛載 Amazon EFS 檔案系統

您可以在執行中或新的 EC2 執行個體掛載 EFS 檔案系統。

使用執行中的 EC2 執行個體

如果您已經有執行中的 EC2 執行個體,請使用 /etc/fstab 自動掛載您的 EFS 檔案系統。

請完成下列步驟:

  1. 若要啟動 Vim 文字編輯器,請執行下列命令:

    vim /etc/fstab
  2. 若要在開機時自動掛載您的 EFS 檔案系統,請根據您的組態執行 efs 類型條目或 nfs4 類型條目的命令。
    對於 ** amazon-efs-utils ** 套件,請執行下列命令:

    fs-########:/ /mnt/efs efs _netdev,nofail,noresvport,tls,iam 0 0

    對於 ** nfs-utils ** 套件,請執行下列命令:

    fs-########.efs.REGION.amazonaws.com:/ /mnt/efs nfs4 defaults,_netdev,nofail 0 0

    注意: 請將 fs-######## 替換為您的 EFS 檔案系統 ID。

  3. 若要在重新啟動的情況下立即套用組態,請執行下列命令:

    mount -a

如需使用掛載協助程式的掛載選項,請參閱 Automatically mounting EFS file systems (自動掛載 EFS 檔案系統)。

注意: 若要掛載您的 EFS 檔案系統,您可以使用與用戶端執行個體不同可用區域中掛載目標的 IP 位址。此掛載方法可能會產生跨可用區域資料傳輸費用,並導致延遲。

使用新的 EC2 執行個體

如果您建立新的 EC2 執行個體,請使用 Amazon EC2 啟動執行個體精靈,自動掛載您的 EFS 檔案系統。設定 EC2 執行個體時,請執行下列動作:

  • File systems (檔案系統) 下,選取您的檔案系統。檔案系統 ID 旁邊的路徑是 EC2 執行個體使用的掛載點。您可以根據需求變更此路徑。
  • 請注意,AWS 會自動在 Advanced details (進階詳細資訊) 區段中產生使用者資料,以掛載 EFS 檔案系統。
  • 選擇預設的安全群組,以確保 EC2 執行個體可以存取您的 EFS 檔案系統。若要允許 SSH 存取,請編輯預設的安全群組。接著新增一項規則,將 Type (類型) 設為 SSHProtocol (通訊協定) 設為 TCPPort Range (連接埠範圍) 設為 22,且 Source (來源) 定為 Anywhere (0.0.0.0/0)

或者,若要在自訂 AMI 或使用特定選項上掛載 EFS 檔案系統,請執行下列命令以新增自訂使用者資料:

RHEL 和 CentOS:

#!/bin/bash
sudo mkdir -p /mnt/efs
sudo yum -y install nfs-utils

Ubuntu:

#!/bin/bash
sudo mkdir -p /mnt/efs
sudo apt install nfs-common
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/ /mnt/efs

然後,啟動您的 EC2 執行個體。

在內部部署環境掛載 Amazon EFS 檔案系統

若要在內部部署伺服器上掛載 EFS 檔案系統,您必須具備 Amazon EFS 與內部部署伺服器之間的連線。若要建立內部部署伺服器與 Amazon Virtual Private Cloud (Amazon VPC) 之間的連線,請使用 AWS Direct Connect 與 AWS VPN。然後,執行下列命令以安裝 NFS 用戶端並掛載您的檔案系統:

sudo yum -y install nfs-utils (Red Hat Linux)
sudo apt-get -y install nfs-common (Ubuntu)
sudo mkdir -p /mnt/efs
sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ /mnt/efs

卸載 Amazon EFS 檔案系統

若要卸載檔案系統,請執行下列 umount 命令:

sudo umount /mnt/efs

如果掛載點忙碌中,請執行下列有 -l 參數的 umount 命令:

sudo umount -l /mnt/efs

相關資訊

Package management tool (套件管理工具)

Tutorial: Mounting with on-premises Linux clients (教學課程:使用內部部署 Linux 用戶端進行掛載)

Run commands when you launch an EC2 instance with user data input (透過使用者資料輸入啟動 EC2 執行個體時執行命令)

AWS 官方已更新 5 個月前