全部產品
Search
文件中心

Cloud Parallel File Storage:快速入門(CPFS-POSIX)

更新時間:Nov 07, 2025

POSIX用戶端可同時串連多個儲存節點,對上層應用提供標準POSIX和MPI-IO介面,可以提供最優的效能和應用介面相容性。本文以Alibaba Cloud Linux作業系統為例,介紹如何快速部署CPFS,並通過CPFS-POSIX用戶端訪問CPFS檔案系統。

說明
  • CPFS-POSIX用戶端可為您帶來較CPFS-NFS更好的I/O效能體驗。CPFS檔案系統在建立POSIX掛載點時,會在您的阿里雲帳號下自動建立3個隨用隨付的ECS執行個體用於管理CPFS-POSIX用戶端叢集,ECS執行個體規格為ecs.g*.large(g6及以上執行個體規格),並按照所在地區ECS的收費標準進行收費,請確認您的阿里雲帳號在該可用性區域可購買該規格執行個體。Elastic Compute Service的詳細價格,請參見Elastic Compute Service產品定價

  • 如果您對效能沒有極致需求,建議您在控制台開啟通用型協議服務,使用CPFS-NFS用戶端訪問CPFS。使用CPFS-NFS方式訪問CPFS檔案系統,無需額外的3個ECS執行個體。關於協議服務的更多資訊,請參見協議服務

前提條件

  • 已開通檔案儲存體CPFS服務。

    首次登入CPFS控制台時,請根據頁面引導開通CPFS服務。

  • 已建立一個ECS執行個體,且為CPFS-POSIX用戶端支援的作業系統。更多資訊,請參見建立ECS執行個體

    作業系統類型

    發行版

    核心版本

    Alibaba Cloud Linux

    Alibaba Cloud Linux 2.1903 64位

    4.19.91-27.4.al7.x86_64及以下版本

    RHEL或CentOS

    8.4

    4.18.0-305.19.1.el8_4

    8.3

    4.18.0-240.22.1.el8_3

    8.2

    4.18.0-193.28.1.el8_2

    8.1

    4.18.0-147.8.1.el8_1

    8.0

    4.18.0-80.11.2.el8_0

    7.9

    3.10.0-1160.42.2.el7

    7.8

    3.10.0-1127.19.1.el7

    7.7

    3.10.0-1062.18.1.el7

    7.6

    3.10.0-957.54.1.el7

    7.5

    3.10.0-862.14.4.el7

    7.4

    3.10.0-693.2.2.el7

    7.3

    3.10.0-514.26.2.el7

    7.2

    3.10.0-514.26.2.el7

    Ubuntu

    20.04.3 LTS

    5.4.0-86-generic

    說明
    • CPFS-POSIX用戶端軟體需要最少2個CPU核、4 GiB記憶體確保正常運行。

    • 如果您的作業系統核心版本不屬於POSIX用戶端支援的核心版本,建議您使用NFS用戶端訪問CPFS。

    • 使用CentOS的使用者,由於CentOS官方宣布了停止維護CentOS Linux的計劃,阿里雲上CentOS Linux公用鏡像來源於CentOS官方,當CentOS Linux停止維護後,阿里雲將會同時停止對該作業系統的支援。為了避免作業系統停止維護帶來的影響,建議您及時更換作業系統。關於更換作業系統的詳細資料,請參見作業系統遷移

    本文使用的ECS執行個體配置如下:

    • 作業系統:Alibaba Cloud Linux 2.1903 LTS 64位

    • 核心版本:4.19.91-27.4.al7.x86_64

    • vCPU:2 vCPU

    • 記憶體:8 GiB

    • 地區:華東2(上海)

    • 可用性區域:上海可用性區域B

    • 內網IP地址:192.168.1.249

使用流程

步驟一:建立檔案系統

  1. 登入CPFS控制台

  2. 概覽頁面的下方,單擊建立CPFS

  3. CPFS國際站(隨用隨付)頁面,按如下說明配置必要參數。其他參數請您根據實際業務需求選擇或選用預設配置。更多資訊,請參見建立檔案系統

    配置項

    說明

    地區

    在下拉式清單中,選擇華東2(上海)

    可用性區域

    選擇上海可用性區域B。與ECS執行個體同一可用性區域。

    類型

    選擇100 MB/s/TiB基準

    CPFS配置容量

    選擇檔案系統儲存容量。本樣本選擇容量為3600 GiB

    專用網路

    選擇已建立的VPC網路。

    虛擬交換器

    選擇VPC網路下建立的交換器。

  4. 單擊立即购买,根據頁面提示,完成購買。

步驟二:添加POSIX掛載點和添加管理節點安全性群組

  1. 在左側導覽列,選擇檔案系統 > 檔案系統列表,單擊剛建立的檔案系統名稱。

  2. 在檔案系統的詳情頁面,選擇掛載使用頁簽。

  3. 添加POSIX用戶端掛載點。

    1. 單擊添加POSIX用戶端掛載點,配置如下必要參數。其他參數請您根據實際業務需求選擇或選用預設配置。

      交換器:選擇與ECS執行個體在同一VPC網路下建立的交換器。

    2. 單擊確定

  4. 擷取管理節點安全性群組資訊。

    1. 用戶端管理節點地區,單擊列表中的第一個ECS執行個體,進入該執行個體的詳情頁面。

    2. 在該ECS執行個體詳情頁面,單擊安全性群組頁簽,記錄安全性群組資訊。

      image.png

  5. 將目標ECS執行個體加入CPFS管理節點安全性群組。

    1. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

    2. 單擊待掛載CPFS檔案系統ECS執行個體ID,進入執行個體詳情頁面。

    3. 選擇安全性群組頁簽,單擊更換安全性群組

    4. 更換安全性群組對話方塊的安全性群組下拉式清單中,選擇上一步擷取到的管理節點安全性群組(<FSID>-<GENID>-qr-sg),單擊確定

      image

步驟三:安裝CPFS-POSIX用戶端

  1. 在左側導覽列,選擇執行個體與鏡像 > 執行個體

  2. 在CPFS-POSIX用戶端安裝節點ECS(cpfs-****-000001-qr-001)操作列,單擊遠端連線登入CPFS-POSIX用戶端安裝節點。串連ECS執行個體方式,請參見串連執行個體

    您可以登入NAS控制台,在剛建立的檔案系統的掛載使用頁面的用戶端管理節點地區,查看第一個ECS執行個體的密碼。用戶端密碼

  3. 連通管理節點與目標ECS執行個體之間的免密登入。

    說明

    在為多個ECS執行個體配置連通CPFS管理節點之間的免密登入前,建議將目標ECS執行個體的登入密碼設定為同一個密碼,否則,您需要多次建立client.list並重複執行步驟6~步驟8的操作步驟。

    1. 建立client.list檔案並添加目標ECS的內網IP地址。

      1. 建立client.list檔案

        touch client.list
      2. 執行vi client.list命令,開啟client.list檔案並添加目標ECS的內網IP地址。

        192.168.1.249
        說明

        可添加一個或多個ECS執行個體,當添加多個ECS執行個體時,目標ECS的內網IP地址需換行輸入。

      3. 儲存並退出。

    2. 建立qr.list檔案並添加管理節點IP地址。

      1. 建立qr.list檔案

        touch qr.list
      2. 執行vi qr.list命令,開啟qr.list檔案並添加管理節點IP地址。樣本如下:

        192.168.*.***
        192.168.*.***
        192.168.*.***

        您可以在用戶端管理節點地區,擷取CPFS-POSIX用戶端管理節點IP地址。

      3. 儲存並退出。

    3. 配置auto_ssh.sh指令碼。

      1. 建立auto_ssh.sh檔案。

        touch auto_ssh.sh
      2. 執行vi auto_ssh.sh命令,開啟auto_ssh.sh檔案並添加如下內容。

        #!/usr/bin/expect
        set timeout 10
        set username [lindex $argv 0]
        set password [lindex $argv 1]
        set hostname [lindex $argv 2]
        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$hostname
        expect {
         #first connect, no public key in ~/.ssh/known_hosts
         "Are you sure you want to continue connecting (yes/no)?" {
         send "yes\r"
         expect "password:"
         send "$password\r"
         }
         #already has public key in ~/.ssh/known_hosts
         "password:" {
         send "$password\r"
         }
         "Now try logging into the machine" {
         #it has authorized, do nothing!
         }
         "already exist on the remote" {
         #it has authorized, do nothing!
         }
        }
        expect eof
        
      3. 儲存並退出。

  4. 執行以下命令,賦予使用者擁有auto_ssh.sh檔案的執行許可權。

    chmod +x auto_ssh.sh
  5. 執行以下命令,記錄client.list中目標ECS執行個體的PASSWD。

    PASSWD='yourpassword'
    說明

    如果目標ECS執行個體的PASSWD不一致,則需要多次建立client.list並重複執行步驟6~步驟8的操作步驟。

  6. 執行以下命令,組態管理節點免密登入。

    cat client.list | xargs -I {} ./auto_ssh.sh root $PASSWD {}
  7. 執行以下命令,為記錄到client.list中的ECS執行個體遠程安裝CPFS用戶端。直到回顯Complete!,則表示安裝成功。

    region_id=`curl http://100.100.100.200/latest/meta-data/region-id`;
    wget https://cpfs-${region_id}-pre.oss-${region_id}-internal.aliyuncs.com/cpfs/CPFS2.3.4-CentOS.tar.gz -O /root/CPFS2.3.4-CentOS.tar.gz;
    cat client.list | xargs -I {} scp /root/CPFS2.3.4-CentOS.tar.gz {}:/root/
    pssh -ih client.list "tar xzvf /root/CPFS2.3.4-CentOS.tar.gz"
    pssh -ih client.list "cd /root/CPFS2.3.4-CentOS/CentOS7;yum install -y gpfs.adv-*.x86_64.rpm gpfs.base-*.x86_64.rpm gpfs.docs-*.noarch.rpm gpfs.gpl-*.noarch.rpm gpfs.gskit-*.x86_64.rpm gpfs.gss.pmsensors-*.x86_64.rpm gpfs.license.dm-*.x86_64.rpm gpfs.msg.en_US-*.noarch.rpm"
  8. 執行以下命令,為記錄到client.list中的ECS執行個體遠程編譯kernel extension。

    pssh -ih client.list "/usr/bin/yum -y install cpp gcc-c++ elfutils-libelf-devel" 
    pssh -ih client.list "export LINUX_DISTRIBUTION=KERNEL_ORG_LINUX; /usr/lpp/mmfs/bin/mmbuildgpl"

    配置成功後,您還可以將該環境製作為鏡像。當需要新增訪問CPFS檔案系統的ECS執行個體時,無需再次為ECS配置環境,直接使用鏡像建立執行個體即可。關於如何製作鏡像的操作步驟,請參見自訂鏡像

步驟四:掛載CPFS檔案系統

  1. 執行以下命令,更新管理節點和目標ECS執行個體的hosts檔案。

    pssh -ih client.list "hostname;ifconfig eth0 | grep -v inet6 | grep inet | awk '{print \$2}'" | grep -v SUCC | sed 'N;s/\n/ /' > /tmp/ip-host-client.list
    pssh -ih qr.list "hostname;ifconfig eth0 | grep -v inet6 | grep inet | awk '{print \$2}'" | grep -v SUCC | sed 'N;s/\n/ /' > /tmp/ip-host-qr.list
    cat /tmp/ip-host-client.list | awk '{print $2,$1,$1"t_MAGICTAG"}' > /etc/client-hosts.append
    cat /tmp/ip-host-qr.list | awk '{print $2,$1,$1"t_MAGICTAG"}' > /etc/qr-hosts.append
    pssh -ih client.list "cp /etc/hosts hosts.bak"
    pssh -ih qr.list "cp /etc/hosts hosts.bak"
    cat client.list | xargs -I {} scp /etc/client-hosts.append {}:/etc/
    cat client.list | xargs -I {} scp /etc/qr-hosts.append {}:/etc/
    cat qr.list | xargs -I {} scp /etc/client-hosts.append {}:/etc/
    pssh -ih client.list "cat /etc/client-hosts.append >> /etc/hosts"
    pssh -ih client.list "cat /etc/qr-hosts.append >> /etc/hosts"
    pssh -ih qr.list "cat /etc/client-hosts.append >> /etc/hosts"
  2. 執行以下命令,將目標ECS執行個體加入到CPFS叢集。

    1. 執行命令

      mmaddnode -N client.list
      mmchlicense client --accept -N client.list
      mmchnode --perfmon -N client.list
      mmstartup -N client.list
      mmgetstate -a
    2. 返回樣本

      當目標ECS執行個體節點狀態變為active時,則表示該節點成功加入CPFS叢集。

       Node number  Node name                            GPFS state  
      ---------------------------------------------------------------
                 1  cpfs-2989198****323d3-000001-qr-001  active
                 2  cpfs-2989198****323d3-000001-qr-002  active
                 3  cpfs-2989198****323d3-000001-qr-003  active
                 4  iZ0jl91t3p5kehvr6i5****              active
  3. 執行以下命令,確認node列表中已包含目標ECS執行個體。

    • 執行命令

      mmlscluster
    • 返回樣本

       Node  Daemon node name                     IP address    Admin node name                      Designation
      -----------------------------------------------------------------------------------------------------------
         1   cpfs-2989198****323d3-000001-qr-001  192.168.3.57  cpfs-2989198****323d3-000001-qr-001  quorum-manager-perfmon
         2   cpfs-2989198****323d3-000001-qr-002  192.168.3.58  cpfs-2989198****323d3-000001-qr-002  quorum-manager-perfmon
         3   cpfs-2989198****323d3-000001-qr-003  192.168.3.56  cpfs-2989198****323d3-000001-qr-003  quorum-manager-perfmon
         4   iZ0jl91t3p5kehvr6i5****             192.168.3.59  iZ0jl91t3p5kehvr6i5****            perfmon

步驟五:驗證掛載

掛載成功後,您可以在ECS上把CPFS檔案系統當作一個普通的目錄來訪問和使用。

  1. 串連目標ECS執行個體。串連方式,請參見串連ECS執行個體

  2. 執行以下命令,查詢掛載點。

    df -h

    返回樣本如下:

    Filesystem               Size  Used Avail Use% Mounted on
    devtmpfs                 7.6G     0  7.6G   0% /dev
    tmpfs                    7.6G     0  7.6G   0% /dev/shm
    tmpfs                    7.6G  512K  7.6G   1% /run
    tmpfs                    7.6G     0  7.6G   0% /sys/fs/cgroup
    /dev/vda1                 40G  3.4G   37G   9% /
    tmpfs                    1.6G     0  1.6G   0% /run/user/0
    01a392bac3****-000001    3.6T  432M  3.6T   1% /cpfs/01a392bac3****-000001

    其中,/cpfs/01a392bac3****-000001即為查詢到的掛載點。

  3. 執行以下命令,進入CPFS檔案系統。

    cd <掛載點>

    此時,您就可以將CPFS檔案系統當作一個普通的目錄來訪問和使用。