本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
佈建NVMe/TCP適用於 Linux
FSxfor ONTAP 支援非揮發性記憶體快速超過 TCP (NVMe/TCP) 區塊儲存通訊協定。使用NVMe/時TCP,您可ONTAPCLI以使用佈建命名空間和子系統,然後將命名空間對應至子系統,類似於佈建並對應至 i 的初始器群組 (igroups) 的方式LUNs。SCSINVMe/TCP通訊協定可在具有 6 個以下高可用性 (HA) 配對的第二代檔案系統上使用。
注意
FSx對於ONTAP文件系統,使用 i SCSI 和NVMe/TCP塊存儲協議SVM的 i SCSI 端點。
在 Amazon TCP FSx 上設定NVMe/的主要步驟有三個主要步驟 NetApp ONTAP,這些步驟涵蓋在下列程序中:
在 Linux 主機上安裝和設定NVMe用戶端。
在檔案系統NVMe上進行配置SVM。
建立NVMe命名空間。
建立子NVMe系統。
將命名空間對應至子系統。
將用戶端新增NQN至子系統。
在 Linux 用戶NVMe端上掛載裝置。
開始之前
在開始為NVMe/設定檔案系統的程序之前TCP,您必須先完成下列項目。
FSx為ONTAP檔案系統建立一個。如需詳細資訊,請參閱建立檔案系統。
在檔案系統中建立一個EC2執行 RHEL (RHEL) 9.3 的VPC執行個體。這是 Linux 主機,您將在其上使用NVMe/TCP進行 Linux 配置NVMe和訪問文件數據。
超出這些程序的範圍,如果主機位於另一個主機VPC,您可以使用VPC對等互連或 AWS Transit Gateway 授與其他對磁碟區 i SCSI 端點的VPCs存取權。如需詳細資訊,請參閱從部署外部存取資料 VPC。
將 Linux 主機的VPC安全性群組設定為允許輸入和輸出流量,如中所述使用 Amazon 的檔案系統存取控制 VPC。
取得具有存取
fsxadmin
權限之使用ONTAP者的認證ONTAPCLI。如需詳細資訊,請參閱ONTAP 角色和使用者。您將配置NVMe和用於存取 For ONTAP 檔案系統的 FSx Linux 主機位於相同的VPC和 AWS 帳戶。
建議EC2執行個體與檔案系統偏好的子網路位於相同的可用區域。
如果您的EC2執行個體執行的 Linux 與 RHEL 9.3 AMI 不同,則可能已經安裝了這些程序和範例中使用的部分公用程式,而且您可能會使用不同的指令來安裝必要的套件。除了安裝套件之外,本節中使用的指令對其他 EC2 Linux 也有效AMIs。
在 Linux 主機NVMe上安裝和設定
安裝NVMe用戶端
-
使用用SSH戶端 Connect 至您的 Linux 執行個體。如需詳細資訊,請參閱使用以下方式從 Linux 或 macOS Connect 到您的 Linux 執行個體SSH。
-
使用下列命令安裝
nvme-cli
:~$
sudo yum install -y nvme-cli -
將
nvme-tcp
模組載入到主機上:$
sudo modprobe nvme-tcp
-
使用下列命令取得 Linux 主機的NVMe合格名稱 (NQN):
$
cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1
記錄回應,以便在稍後的步驟中使用。
NVMe在FSx針對ONTAP檔案系統上進行配置
在檔案系統NVMe上進行配置
Connect 至您計劃在其上建立NVMe裝置的 for ONTAP 檔案系統上。 NetApp ONTAP CLI FSx
若要存取 NetApp ONTAPCLI,請執行下列命令,在 Amazon FSx NetApp ONTAP 檔案系統的管理連接埠上建立SSH工作階段。取代
為檔案系統管理連接埠的 IP 位址。management_endpoint_ip
[~]$
ssh fsxadmin@
management_endpoint_ip
如需詳細資訊,請參閱使用 ONTAP CLI 管理檔案系統。
-
在您用來存取NVMe介面SVM的磁碟區上建立新磁碟區。
::>
vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t
[Job 597] Job succeeded: Successful
ns_1
使用指令建立vserver nvme namespace create
NetApp ONTAPCLI命名NVMe空間。命名空間會對應至初始器 (用戶端),並控制哪些初始器 (用戶端) 可以NVMe存取裝置。 ::>
vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linux
Created a namespace of size 100GB (107374182400).
-
使用
vserver nvme subsystem create
NetApp ONTAPCLI指令建立NVMe子系統。 ~$
vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
-
將命名空間對應至您剛建立的子系統。
::>
vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
使用您先前擷取的NQN,將用戶端新增至子系統。
::>
vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsx
如果您要讓對應至此子系統的裝置可供多台主機使用,您可以在逗號分隔的清單中指定多個啟動器名稱。如需詳細資訊,請參閱文件中的 vserver nvme 子系統主機新增
。 NetApp ONTAP -
使用以下命令確認vserver nvme namespace show
命名空間是否存在: ::>
vserver nvme namespace show -vserver fsx -instance
Vserver Name: fsx Namespace Path: /vol/nvme_vol1/ns_1 Size: 100GB Size Used: 90.59GB OS Type: linux Comment: Block Size: 4KB State: online Space Reservation: false Space Reservations Honored: false Is Read Only: false Creation Time: 5/20/2024 17:03:08 Namespace UUID: c51793c0-8840-4a77-903a-c869186e74e3 Vdisk ID: 80d42c6f00000000187cca9 Restore Inaccessible: false Inconsistent Filesystem: false Inconsistent Blocks: false NVFail: false Node Hosting the Namespace: FsxId062e9bb6e05143fcb-01 Volume Name: nvme_vol1 Qtree Name: Mapped Subsystem: sub_1 Subsystem UUID: db526ec7-16ca-11ef-a612-d320bd5b74a9 Namespace ID: 00000001h ANA Group ID: 00000001h Vserver UUID: 656d410a-1460-11ef-a612-d320bd5b74a9 Vserver ID: 3 Volume MSID: 2161388655 Volume DSID: 1029 Aggregate: aggr1 Aggregate UUID: cfa8e6ee-145f-11ef-a612-d320bd5b74a9 Namespace Container State: online Autodelete Enabled: false Application UUID: - Application: - Has Metadata Provisioned: true 1 entries were displayed.
使用此 network interface show -vserver
命令擷取您SVM在其中建立NVMe裝置之區塊儲存介面的位址。 ::>
network interface show -vserver
svm_name
-data-protocol nvme-tcpLogical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ----
svm_name
iscsi_1 up/up 172.31.16.19/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.26.134/20 FSxId0123456789abcdef8-02 e0e true 2 entries were displayed.注意
該
iscsi_1
LIF用於 i SCSI 和NVMe/TCP。在此範例中,我們的 IP 位址為 172.31.16.19,而我們的 IP 位址為 172.31.26.134。
在 Linux 用戶NVMe端上掛載裝置
在 Linux 用戶端上掛載裝NVMe置的程序包括三個步驟:
發現節NVMe點
分割裝NVMe置
在用戶端上掛載裝NVMe置
這些內容涵蓋在以下程序中。
若要探索目標NVMe節點
在 Linux 用戶端上,使用下列指令來探索目標NVMe節點。Replace (取代)
使用國際網路協會
iscsi_1
的 IP 位址,以及
用戶端的 IP 位址。用戶端 IP
注意
iscsi_1
並iscsi_2
LIFs用於 i SCSI 和NVMe存儲。~$
sudo nvme discover -t tcp -w
client_IP
-aiscsi_1_IP
Discovery Log Number of Records 4, Generation counter 11 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 0 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.26.134 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.16.19 eflags: explicit discovery connections, duplicate discovery information sectype: none
-
(選擇性) 若要為檔案NVMe裝置提供比 Amazon EC2 單一用戶端最高 5 Gb/s (約 625 MB/秒) 的輸送量更高,請遵循 Amazon 執行個體適用於 Linux 執行個體的 Amazon EC2 執行個體網路頻寬使用者指南中所述的程序來建立其他工作階段。
-
在控制器遺失逾時至少 1800 秒的情況下登入目標啟動器,再次使用
iscsi_1
的 IP 位址
以及用戶端的 IP 位址國際網路協會
。 您的NVMe裝置會顯示為可用磁碟。用戶端 IP
~$
sudo nvme connect-all -t tcp -w
client_IP
-aiscsi_1
-l 1800 使用下列命令來確認NVMe堆疊是否已識別並合併多個工作階段,並設定了多重路徑。
Y
如果組態成功,則會傳回指令。~$
cat /sys/module/nvme_core/parameters/multipath
Y使用下列命令驗證 NVMe-oF 設定
model
是否設定為,以NetApp ONTAP Controller
及個別ONTAP命名空間的負載平衡iopolicy
設定round-robin
為,以便在所有可用路徑上散佈 I/O~$
cat /sys/class/nvme-subsystem/nvme-subsys*/model
Amazon Elastic Block Store NetApp ONTAP Controller
~$
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
numa round-robin
使用下列命令來確認已在主機上建立並正確探索命名空間:
~$
sudo nvme list
Node Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 vol05955547c003f0580 Amazon Elastic Block Store 0x1 25.77 GB / 25.77 GB 512 B + 0 B 1.0 /dev/nvme2n1 /dev/ng2n1 lWB12JWY/XLKAAAAAAAC NetApp ONTAP Controller 0x1 107.37 GB / 107.37 GB 4 KiB + 0 B FFFFFFFF
輸出中的新設備是
/dev/nvme2n1
。根據您的 Linux 安裝,此命名配置可能會有所不同。確認每個路徑的控制器狀態為即時,且具有正確的非對稱命名空間存取 (ANA) 多重路徑狀態:
~$
nvme list-subsys /dev/nvme2n1
nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:subsystem.rhel hostnqn=nqn.2014-08.org.nvmexpress:uuid:ec2a70bf-3ab2-6cb0-f997-8730057ceb24 iopolicy=round-robin \ +- nvme2 tcp traddr=172.31.26.134,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live non-optimized +- nvme3 tcp traddr=172.31.16.19,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live optimized
在此範例中,NVMe堆疊已自動找到您檔案系統的替代檔案系統 LIF
iscsi_2
,172.31.26.134。-
確認NetApp外掛程式為每個ONTAP命名空間裝置顯示正確的值:
~$
sudo nvme netapp ontapdevices -o column
Device Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme2n1 fsx /vol/nvme_vol1/ns_1 1 0441c609-3db1-4b0b-aa83-790d0d448ece 107.37GB
分割裝置
-
使用以下命令來驗證您的 device_name
nvme2n1
的路徑是否存在。~$
ls /dev/mapper/nvme2n1
/dev/nvme2n1
使用分割磁碟
fdisk
。您將輸入互動式提示。依照顯示的順序輸入選項。您可以使用小於最後一個磁區的值來建立多個分割區 (20971519
在此範例中)。注意
該
Last sector
值將根據您的NVMe設備的大小而有所不同(此示例中為 100 GiB)。~$
sudo fdisk /dev/mapper/nvme2n1
fsdisk
互動式提示隨即開始。Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x66595cb0. Command (m for help):
n
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p):
p
Partition number (1-4, default 1):
1
First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399):
20971519
Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help):
w
The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
輸入後
w
,您的新分區/dev/nvme2n1
變為可用。所以此partition_name
具有格式<device_name>
<partition_number>
。1
在上一個步驟中用作fdisk
命令中的分割區編號。-
使用
/dev/nvme2n1
作為路徑建立您的檔案系統。~$
sudo mkfs.ext4 /dev/nvme2n1
系統會以下列輸出回應:
mke2fs 1.46.5 (30-Dec-2021) Found a dos partition table in /dev/nvme2n1 Proceed anyway? (y,N)
y
Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 372fb2fd-ae0e-4e74-ac06-3eb3eabd55fb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
若要在 Linux 用戶端上掛載NVMe裝置
-
建立目錄
directory_path
做為 Linux 執行個體上檔案系統的掛載點。~$
sudo mkdir /
directory_path
/mount_point
-
使用下列指令掛載檔案系統。
~$
sudo mount -t ext4 /dev/nvme2n1 /
directory_path
/mount_point
-
(選擇性) 如果您想要提供裝載目錄的特定使用者擁有權,請取代
與所有者的用戶名。使用者名稱
~$
sudo chown
username
:username
/directory_path
/mount_point
-
(選擇性) 確認您可以從檔案系統讀取和寫入資料。
~$
echo "Hello world!" > /
directory_path
/mount_point
/HelloWorld.txt~$
cat
directory_path
/HelloWorld.txtHello world!
您已成功在 Linux 用戶端上建立並掛載裝NVMe置。