快速入門(CPFS-POSIX)
POSIX客戶端可同時(shí)連接多個(gè)存儲(chǔ)節(jié)點(diǎn),對(duì)上層應(yīng)用提供標(biāo)準(zhǔn)POSIX和MPI-IO接口,可以提供最優(yōu)的性能和應(yīng)用接口兼容性。本文以Alibaba Cloud Linux操作系統(tǒng)為例,介紹如何快速部署CPFS,并通過CPFS-POSIX客戶端訪問CPFS文件系統(tǒng)。
CPFS-POSIX客戶端可為您帶來較CPFS-NFS更好的I/O性能體驗(yàn)。CPFS文件系統(tǒng)在創(chuàng)建POSIX掛載點(diǎn)時(shí),會(huì)在您的阿里云賬號(hào)下自動(dòng)創(chuàng)建3個(gè)按量付費(fèi)的ECS實(shí)例用于管理CPFS-POSIX客戶端集群,ECS實(shí)例規(guī)格為ecs.g*.large(g6及以上實(shí)例規(guī)格),并按照所在地域ECS的收費(fèi)標(biāo)準(zhǔn)進(jìn)行收費(fèi),請(qǐng)確認(rèn)您的阿里云賬號(hào)在該可用區(qū)可購買該規(guī)格實(shí)例。云服務(wù)器ECS的詳細(xì)價(jià)格,請(qǐng)參見云服務(wù)器ECS產(chǎn)品定價(jià)。
如果您對(duì)性能沒有極致需求,建議您在控制臺(tái)開啟通用型協(xié)議服務(wù),使用CPFS-NFS客戶端訪問CPFS。使用CPFS-NFS方式訪問CPFS文件系統(tǒng),無需額外的3個(gè)ECS實(shí)例。關(guān)于協(xié)議服務(wù)的更多信息,請(qǐng)參見協(xié)議服務(wù)概述。
前提條件
已開通文件存儲(chǔ)CPFS服務(wù)。
首次登錄文件存儲(chǔ)控制臺(tái)時(shí),請(qǐng)根據(jù)頁面引導(dǎo)開通CPFS服務(wù)。
已創(chuàng)建一個(gè)ECS實(shí)例,且為CPFS-POSIX客戶端支持的操作系統(tǒng)。更多信息,請(qǐng)參見創(chuàng)建ECS實(shí)例。
操作系統(tǒng)類型
發(fā)行版
內(nèi)核版本
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個(gè)CPU核、4 GiB內(nèi)存確保正常運(yùn)行。
如果您的操作系統(tǒng)內(nèi)核版本不屬于POSIX客戶端支持的內(nèi)核版本,建議您使用NFS客戶端訪問CPFS。
使用CentOS的用戶,由于CentOS官方宣布了停止維護(hù)CentOS Linux的計(jì)劃,阿里云上CentOS Linux公共鏡像來源于CentOS官方,當(dāng)CentOS Linux停止維護(hù)后,阿里云將會(huì)同時(shí)停止對(duì)該操作系統(tǒng)的支持。為了避免操作系統(tǒng)停止維護(hù)帶來的影響,建議您及時(shí)更換操作系統(tǒng)。關(guān)于更換操作系統(tǒng)的詳細(xì)信息,請(qǐng)參見操作系統(tǒng)遷移及升級(jí)。
本文使用的ECS實(shí)例配置如下:
操作系統(tǒng):Alibaba Cloud Linux 2.1903 LTS 64位
內(nèi)核版本:4.19.91-27.4.al7.x86_64
vCPU:2 vCPU
內(nèi)存:8 GiB
地域:華東1(杭州)
可用區(qū):杭州可用區(qū)K
內(nèi)網(wǎng)IP地址:192.168.1.249
使用流程
步驟一:創(chuàng)建文件系統(tǒng)
登錄NAS控制臺(tái)。
在概覽頁面的文件系統(tǒng)選型區(qū)域,單擊CPFS下方的創(chuàng)建。
在創(chuàng)建頁面,按如下說明配置必要參數(shù)。其他參數(shù)請(qǐng)您根據(jù)實(shí)際業(yè)務(wù)需求選擇或選用默認(rèn)配置。
配置項(xiàng)
說明
地域
在下拉列表中,選擇華東1(杭州)。
可用區(qū)
選擇杭州可用區(qū)K。與ECS實(shí)例同一可用區(qū)。
類型
選擇100 MB/s/TiB基線。
專有網(wǎng)絡(luò)
選擇與ECS實(shí)例相同的VPC。
虛擬交換機(jī)
選擇VPC網(wǎng)絡(luò)下創(chuàng)建的交換機(jī)。
單擊立即購買,根據(jù)頁面提示,完成購買。
步驟二:添加POSIX掛載點(diǎn)和添加管理節(jié)點(diǎn)安全組
在左側(cè)導(dǎo)航欄,選擇文件系統(tǒng) > 文件系統(tǒng)列表,單擊剛創(chuàng)建的文件系統(tǒng)名稱。
在文件系統(tǒng)的詳情頁面,選擇掛載使用頁簽。
添加POSIX客戶端掛載點(diǎn)。
單擊添加POSIX客戶端掛載點(diǎn),配置如下必要參數(shù)。其他參數(shù)請(qǐng)您根據(jù)實(shí)際業(yè)務(wù)需求選擇或選用默認(rèn)配置。
交換機(jī):選擇與ECS實(shí)例在同一VPC網(wǎng)絡(luò)下創(chuàng)建的交換機(jī)。
單擊確定。
獲取管理節(jié)點(diǎn)安全組信息。
在客戶端管理節(jié)點(diǎn)區(qū)域,單擊列表中的第一個(gè)ECS實(shí)例,進(jìn)入該實(shí)例的詳情頁面。
在該ECS實(shí)例詳情頁面,單擊安全組頁簽,記錄安全組信息。
將目標(biāo)ECS實(shí)例加入CPFS管理節(jié)點(diǎn)安全組。
在左側(cè)導(dǎo)航欄,選擇實(shí)例與鏡像 > 實(shí)例。
單擊待掛載CPFS文件系統(tǒng)ECS實(shí)例ID,進(jìn)入實(shí)例詳情頁面。
選擇安全組頁簽,單擊修改安全組。
從修改安全組對(duì)話框的安全組下拉列表中,選擇上一步獲取到的管理節(jié)點(diǎn)安全組(<FSID>-<GENID>-qr-sg),單擊確定。
步驟三:安裝CPFS-POSIX客戶端
在左側(cè)導(dǎo)航欄,選擇實(shí)例與鏡像 > 實(shí)例。
在CPFS-POSIX客戶端安裝節(jié)點(diǎn)ECS(cpfs-****-000001-qr-001)操作列,單擊遠(yuǎn)程連接,登錄CPFS-POSIX客戶端安裝節(jié)點(diǎn)。連接ECS實(shí)例方式,請(qǐng)參見連接實(shí)例。
您可以登錄NAS控制臺(tái),在剛創(chuàng)建的文件系統(tǒng)的掛載使用頁面的客戶端管理節(jié)點(diǎn)區(qū)域,查看第一個(gè)ECS實(shí)例的密碼。
連通管理節(jié)點(diǎn)與目標(biāo)ECS實(shí)例之間的免密登錄。
創(chuàng)建client.list文件并添加目標(biāo)ECS的內(nèi)網(wǎng)IP地址。
創(chuàng)建client.list文件
touch client.list
執(zhí)行
vi client.list
命令,打開client.list文件并添加目標(biāo)ECS的內(nèi)網(wǎng)IP地址。192.168.1.249
說明可添加一個(gè)或多個(gè)ECS實(shí)例,當(dāng)添加多個(gè)ECS實(shí)例時(shí),目標(biāo)ECS的內(nèi)網(wǎng)IP地址需換行輸入。
保存并退出。
創(chuàng)建qr.list文件并添加管理節(jié)點(diǎn)IP地址。
創(chuàng)建qr.list文件
touch qr.list
執(zhí)行
vi qr.list
命令,打開qr.list文件并添加管理節(jié)點(diǎn)IP地址。示例如下:192.168.*.*** 192.168.*.*** 192.168.*.***
您可以在客戶端管理節(jié)點(diǎn)區(qū)域,獲取CPFS-POSIX客戶端管理節(jié)點(diǎn)IP地址。
保存并退出。
配置auto_ssh.sh腳本。
創(chuàng)建auto_ssh.sh文件。
touch auto_ssh.sh
執(zhí)行
vi auto_ssh.sh
命令,打開auto_ssh.sh文件并添加如下內(nèi)容。#!/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
保存并退出。
執(zhí)行以下命令,賦予用戶擁有auto_ssh.sh文件的執(zhí)行權(quán)限。
chmod +x auto_ssh.sh
執(zhí)行以下命令,記錄client.list中目標(biāo)ECS實(shí)例的PASSWD。
PASSWD='yourpassword'
執(zhí)行以下命令,配置管理節(jié)點(diǎn)免密登錄。
cat client.list | xargs -I {} ./auto_ssh.sh root $PASSWD {}
執(zhí)行以下命令,為記錄到client.list中的ECS實(shí)例遠(yuǎn)程安裝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"
執(zhí)行以下命令,為記錄到client.list中的ECS實(shí)例遠(yuǎn)程編譯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"
配置成功后,您還可以將該環(huán)境制作為鏡像。當(dāng)需要新增訪問CPFS文件系統(tǒng)的ECS實(shí)例時(shí),無需再次為ECS配置環(huán)境,直接使用鏡像創(chuàng)建實(shí)例即可。關(guān)于如何制作鏡像的操作步驟,請(qǐng)參見自定義鏡像概述。
步驟四:掛載CPFS文件系統(tǒng)
執(zhí)行以下命令,更新管理節(jié)點(diǎn)和目標(biāo)ECS實(shí)例的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"
執(zhí)行以下命令,將目標(biāo)ECS實(shí)例加入到CPFS集群。
執(zhí)行命令
mmaddnode -N client.list mmchlicense client --accept -N client.list mmchnode --perfmon -N client.list mmstartup -N client.list mmgetstate -a
返回示例
當(dāng)目標(biāo)ECS實(shí)例節(jié)點(diǎn)狀態(tài)變?yōu)?code data-tag="code" code-type="xCode" class="code">active時(shí),則表示該節(jié)點(diǎn)成功加入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
執(zhí)行以下命令,確認(rèn)node列表中已包含目標(biāo)ECS實(shí)例。
執(zhí)行命令
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
步驟五:驗(yàn)證掛載
掛載成功后,您可以在ECS上把CPFS文件系統(tǒng)當(dāng)作一個(gè)普通的目錄來訪問和使用。
連接目標(biāo)ECS實(shí)例。連接方式,請(qǐng)參見連接ECS實(shí)例。
執(zhí)行以下命令,查詢掛載點(diǎn)。
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即為查詢到的掛載點(diǎn)。
執(zhí)行以下命令,進(jìn)入CPFS文件系統(tǒng)。
cd <掛載點(diǎn)>
此時(shí),您就可以將CPFS文件系統(tǒng)當(dāng)作一個(gè)普通的目錄來訪問和使用。