如何掛載、卸載、自動裝載和內部部署掛載我的 Amazon EFS 檔案系統?

4 分的閱讀內容
0

我想知道如何掛載、卸載、自動裝載和內部部署掛載我的 Amazon Elastic File System (Amazon EFS) 檔案系統。

解決方法

掛載檔案系統

若要掛載您的 EFS 檔案系統,您可以安裝 amazon-efs-utils 套件。或者,從 Mankier 網站安裝 nfs-utils 套件。

使用 amazon-efs-utils

完成下列步驟:

  1. 若要安裝 amazon-efs-utils 套件,請根據您的發行版本執行下列其中一個命令:
    Amazon Linux 1、Amazon Linux 2 和 Amazon Linux 2023

    $ sudo yum 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

    如果您的發行版本沒有提供 rust 或 cargo 套件,或提供較舊的 1.70 版本,請使用 rustup 安裝 rust 和 cargo:

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

    若要建立並安裝 RPM,請根據您的發行版執行下列其中一個命令:
    OpenSUSE 或 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
  2. 開啟 Amazon EFS 主控台

  3. 在導覽窗格選擇檔案系統

  4. 選擇您的檔案系統。

  5. 選擇附加

  6. 使用 AWS System Manager 的功能,SSH 或工作階段管理員來連線到執行個體。執行下列命令:

    $ 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

    **注意:**用您的值取代所有範例值。

使用 nfs-utils

完成下列步驟:

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

    $ sudo yum -y install nfs-utils

    Ubuntu 型發行版本

    $ sudo apt install nfs-common
  2. 開啟 Amazon EFS 主控台

  3. 在導覽窗格選擇檔案系統

  4. 選擇您的檔案系統。

  5. 選擇附加

  6. 使用 SSH 或工作階段管理員連線到執行個體,然後執行下列命令:

    $ 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-DNS:/   ~/efs-mount-point

    -or-
    若要使用 IP 位址掛載,請執行下列命令:

    $ sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-ip:/  ~/efs-mount-point

    **注意:**用您的值取代所有範例值。

卸載檔案系統

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

$ umount /mnt/efs

如果掛載點忙碌,則使用**-l** 參數執行 umount 命令:

$ umount -l /mnt/efs

使用 /etc/fstab 自動裝載檔案系統

若要在 /etc/fstab 中進行項目,使 Amazon EFS 掛載在重新開機時仍持續運作,請執行下列命令:

# vim /etc/fstab

使用 amazon-efs-utils

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

使用 nfs-utils

在 fstab 中設定參數:

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

如需使用掛載輔助程式的掛載選項,請參閱自動掛載 EFS 檔案系統

**注意:**您可以使用與用戶端 Amazon Elastic Compute Cloud (Amazon EC2) 不同的可用區域中掛載目標的 IP 位址來掛載。此掛載方法可能會產生跨可用區域資料傳輸費用,並導致延遲。

使用啟動精靈在執行個體啟動時掛載檔案系統

啟動 Amazon EC2 執行個體時,您可以使用啟動精靈自動新增使用者資料來掛載檔案系統。

完成下列步驟:

  1. 開啟 Amazon EC2 主控台
  2. 選擇啟動執行個體
  3. 選取 Amazon Machine Image (AMI) 和執行個體類型,然後選擇下一步: 設定執行個體詳細資訊
  4. 為您的使用案例設定參數。請確定您選取所需的虛擬私有雲端 (VPC) 和子網路以進行 EFS 掛載。
  5. 設定執行個體頁面的檔案系統下,選取您的檔案系統。檔案系統 ID 旁邊的路徑是 EC2 執行個體使用的掛載點。您可以視需要變更此路徑。
    若要掛載檔案系統,會在進階詳細資訊區段中自動產生使用者資料:
    #cloud-config
    package_update: true
    package_upgrade: true
    runcmd:
    - yum install -y amazon-efs-utils
    - apt-get -y install amazon-efs-utils
    - yum install -y nfs-utils
    - apt-get -y install nfs-common
    - file_system_id_1=fs-0cae1679a766bcf49
    - efs_mount_point_1=/mnt/efs/fs1
    - mkdir -p "${efs_mount_point_1}"
    - test -f "/sbin/mount.efs" && printf "\n${file_system_id_1}:/ ${efs_mount_point_1} efs tls,_netdev\n" >> /etc/fstab || printf "\n${file_system_id_1}.efs.us-east-1.amazonaws.com:/ ${efs_mount_point_1} nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0\n" >> /etc/fstab
    - test -f "/sbin/mount.efs" && grep -ozP 'client-info]\nsource' '/etc/amazon/efs/efs-utils.conf'; if [[ $? == 1 ]]; then printf "\n[client-info]\nsource=liw\n" >> /etc/amazon/efs/efs-utils.conf; fi;
    - retryCnt=15; waitTime=30; while true; do mount -a -t efs,nfs4 defaults; if [ $? = 0 ] || [ $retryCnt -lt 1 ]; then echo File system mounted successfully; break; fi; echo File system not available, retrying to mount.; ((retryCnt--)); sleep $waitTime; done;>
    -or-
    若要在自訂 AMI 或使用特定選項上掛載 Amazon 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 執行個體時執行命令
  6. 啟動執行個體。

掛載內部部署檔案系統

若要在內部部署伺服器上掛載 Amazon EFS 檔案系統,Amazon EFS 與內部部署伺服器之間必須有連線。若要在內部部署伺服器與亞馬遜虛擬私有雲端 (Amazon VPC) 之間建立連線,請使用 AWS 直接連線和 AWS VPN。然後,執行下列命令以安裝 NFS 用戶端並掛載您的檔案系統:

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

如需詳細資訊,請參閱教學課程: 使用內部部署 Linux 用戶端掛載

AWS 官方
AWS 官方已更新 4 個月前