本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 iSCSI 連接至用戶端
這些程序中顯示的範例使用下列設定:
已經建立掛載至 Linux 主機的 iSCSI 磁碟區。如需詳細資訊,請參閱 建立一 iSCSI。
掛接 iSCSI LUN 的 Linux 主機是執行 Amazon Linux 2 Amazon 機器映像 (AMI) 的亞馬遜 EC2 執行個體。它具有設定為允許輸入和輸出流量的 VPC 安全群組,如中使用 Amazon VPC 進行檔案系統存取控制所述。
適用於 ONTAP 檔案系統的 Linux 主機和 FSx 位於相同的 VPC 和. AWS 帳戶如果主機位於另一個 VPC 中,您可以使用 VPC 對等互連或 AWS Transit Gateway 授與其他 VPC 存取磁碟區 iSCSI 端點。如需詳細資訊,請參閱 從部署 VPC 外部存取資料。
如果您使用執行不同 Linux AMI 的 EC2 執行個體,主機上安裝的部分公用程式可能已預先安裝,而且您可能會使用不同的命令來安裝必要的套件。除了安裝套件之外,本節中使用的命令對其他 EC2 Linux AMI 也有效。
我們建議 EC2 執行個體與檔案系統偏好的子網路位於相同的可用區域,如下圖所示。
![此影像顯示適用於 NetApp ONTAP 檔案系統的 Amazon FSx,其中含有 iSCSI LUN 和 Amazon EC2 執行個體位於與檔案系統偏好子網路相同的可用區域。](images/fsx-ontap-iscsi-mnt-client.png)
在用戶端上安裝及設定 iSCSI
若要安裝 iSCSI 用戶端
-
確認
iscsi-initiator-utils
並已安裝device-mapper-multipath
在您的 Linux 設備上。使用安全殼層用戶端 Connect 至您的 Linux 執行個體。如需詳細資訊,請參閱使用安全殼層 Connect 到 Linux 執行個體。 使用以下命令安裝
multipath
iSCSI 用戶端。如果您想要在檔案伺服器之間自動容錯移轉,則需要進行安multipath
裝。~$
sudo yum install -y device-mapper-multipath iscsi-initiator-utils-
若要在使用時在檔案伺服器之間自動容錯移轉時加快回應速度
multipath
,請將/etc/iscsi/iscsid.conf
檔案中的取代逾時值設定為值,5
而不是使用預設值120
。~$
sudo sed -i 's/node.session.timeo.replacement_timeout = .*/node.session.timeo.replacement_timeout = 5/' /etc/iscsi/iscsid.conf; sudo cat /etc/iscsi/iscsid.conf | grep node.session.timeo.replacement_timeout 啟動 iSCSI 服務。
~$
sudo service iscsid start請注意,根據您的 Linux 版本,您可能必須使用以下命令:
~$
sudo systemctl start iscsid-
使用以下命令確認服務正在運行。
~$
sudo systemctl status iscsid.service系統會以下列輸出回應:
iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-09-02 00:00:00 UTC; 1min ago Docs: man:iscsid(8) man:iscsiadm(8) Process: 14658 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS) Main PID: 14660 (iscsid) CGroup: /system.slice/iscsid.service ├─14659 /usr/sbin/iscsid └─14660 /usr/sbin/iscsid
若要在您的用戶端上設定 iSCSI
-
若要讓用戶端在檔案伺服器之間自動容錯移轉,您必須設定多重路徑。使用下列命令:
~$
sudo mpathconf --enable --with_multipathd y -
使用下列命令判斷 Linux 主機的啟動器名稱。啟動器名稱的位置取決於您的 iSCSI 公用程式。如果使用
iscsi-initiator-utils
,初始器名稱位於檔案/etc/iscsi/initiatorname.iscsi
中。~$
sudo cat /etc/iscsi/initiatorname.iscsi系統以初始器名稱回應。
InitiatorName=iqn.1994-05.com.redhat:abcdef12345
在 FSx 上設定適用於 ONTAP 檔案系統的 iSCSI
-
使用 NetApp 下列指令,Connect 至您在其上建立 iSCSI LUN 的 FSx 適用於 ONTAP 檔案系統上的 ONTAP CLI。如需詳細資訊,請參閱 使用 NetApp ONTAP CLI。
~$
ssh fsxadmin@your_management_endpoint_ip
-
使用 NetApp ONTAP CLI 指令lun igroup create
建立初始器群組 ( igroup
)。啟動器群組對應至 iSCSI LUN,並控制哪些啟動器 (用戶端) 可以存取 LUN。取代host_initiator_name
為您在上一個程序中擷取的 Linux 主機中的初始器名稱。::>
lun igroup create -vserver
-igroupsvm_name
igroup_name
-initiatorhost_initiator_name
-protocol iscsi -ostype linux如果您要讓對應至此 igroup 的 LUN 可供多台主機使用,您可以指定多個初始器名稱,並以逗號分隔。如需詳細資訊,請參閱 NetApp ONTAP 文件中心的 LUN 測試建立
。 -
使用以下lun igroup show
命令確認 igroup
存在:::>
lun igroup show系統會以下列輸出回應:
Vserver Igroup Protocol OS Type Initiators --------- ------------ -------- -------- ------------------------------------
svm_name
igroup_name
iscsi linux iqn.1994-05.com.redhat:abcdef12345 -
此步驟假設您已經建立了一個 iSCSI LUN。如果尚未執行,請參建立一 iSCSI閱以取得相 step-by-step 關說明。
使用指定下列屬性,從您建立的 LUN 建立對應至您建立的 lun mapping create
igroup: -
— 提供 iSCSI 目標的儲存區虛擬機器名稱。主機會使用此值連線到 LUN。svm_name
-
— 裝載 LUN 的磁碟區名稱。vol_name
-
— 您指派給 LUN 的名稱。lun_name
-
— 初始器群組的名稱。igroup_name
-
— LUN ID 整數是特定於對應,而不是 LUN 本身。igroup 中的初始器會使用此值,作為邏輯單位編號在存取儲存裝置時使用此值作為初始器。lun_id
::>
lun mapping create -vserversvm_name
-path /vol/vol_name
/lun_name
-igroupigroup_name
-lun-idlun_id
-
-
使用
lun show -path
指令確認 LUN 已建立、連線和對應。 ::>
lun show -path /vol/vol_name
/lun_name
-fields state,mapped,serial-hex系統會以下列輸出回應:
Vserver Path serial-hex state mapped --------- ------------------------------- ------------------------ -------- --------
svm_name
/vol/vol_name
/lun_name
6c5742314e5d52766e796150 online mapped儲存
serial_hex
值 (在此範例中為6c5742314e5d52766e796150
),您將在稍後的步驟中使用該值,為區塊裝置建立易記的名稱。 -
使用此
network interface show -vserver
命令擷取您在其中建立 iSCSI LUN 之 SVM 的位址 iscsi_1
和iscsi_2
介面。::>
network interface show -vserversvm_name
系統會以下列輸出回應:
Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ----
svm_name
iscsi_1 up/up 172.31.0.143/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.21.81/20 FSxId0123456789abcdef8-02 e0e true nfs_smb_management_1 up/up 198.19.250.177/20 FSxId0123456789abcdef8-01 e0e true 3 entries were displayed.在此範例中,的 IP 位址
iscsi_1
為172.31.0.143
和iscsi_2
是172.31.21.81
。
在您的用戶端上掛載 iSCSI 磁碟
在您的 Linux 用戶端上,使用下列指令來探索使用
iscsi_1
的 IP 位址ICSI
_1_IP 的目標 iSCSI 節點。~$
sudo iscsiadm --mode discovery --op update --type sendtargets --portal
iscsi_1_IP
172.31.0.143:3260,1029 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 172.31.21.81:3260,1028 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3
在此範例中,
iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3
對應target_initiator
於偏好可用區域中 iSCSI LUN 的。-
(選擇性) 您可以使用建立其他工作階段
target_initiator
。對於單一流程流量,Amazon EC2 的頻寬限制為每秒 5 GB (約 625 MB/秒),但是您可以建立多個工作階段,從單一用戶端提高檔案系統的輸送量。如需詳細資訊,請參閱 Amazon 彈性運算雲端 Linux 執行個體使用者指南中的 Amazon EC2 執行個體網路頻寬。下列命令會在每個可用區域中的每個 ONTAP 節點為每個啟動器建立 8 個工作階段,讓用戶端能夠將最高 40 Gb/s (5,000 MB) 的彙總輸送量驅動到 iSCSI LUN。
~$
sudo iscsiadm --mode node -T
target_initiator
--op update -n node.session.nr_sessions -v 8 登入目標初始器。您的 iSCSI LUN 會顯示為可用的磁碟。
~$
sudo iscsiadm --mode node -T
target_initiator
--loginLogging in to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] successful.
上面的輸出被截斷;您應該在每個文件服務器上看到每個會話的一個
Login successful
響應Logging in
和一個響應。在每個節點有 4 個會話的情況下,將有 8 個Logging in
和 8 個Login successful
響應。使用下列命令,透過顯示
dm-multipath
具有多個原則的單一 LUN,以確認是否已識別並合併 iSCSI 工作階段。應該有相同數量的設備被列為active
和那些列為enabled
.~$
sudo multipath -ll
在輸出中,磁碟名稱格式化為
dm-xyz
,其中xyz
為整數。如果沒有其他多重路徑磁碟,則此值為dm-0
。3600a09806c5742314e5d52766e79614f
dm-xyz
NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 0:0:0:1 sda 8:0 active ready running | |- 1:0:0:1 sdc 8:32 active ready running | |- 3:0:0:1 sdg 8:96 active ready running | `- 4:0:0:1 sdh 8:112 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 2:0:0:1 sdb 8:16 active ready running |- 7:0:0:1 sdf 8:80 active ready running |- 6:0:0:1 sde 8:64 active ready running `- 5:0:0:1 sdd 8:48 active ready running您的區塊裝置現在已連線到 Linux 用戶端。它位於路徑下方
/dev/
。您不應將此路徑用於管理目的,而是使用路徑下的符號連結dm-xyz
/dev/mapper/
,其中wwid
是 LUN 的唯一識別碼,在不同裝置間保持一致。在下一個步驟中,您將提供易記的名稱,以wwid
便將其與其他多重路徑磁碟區分開來。wwid
為您的區塊裝置提供易記的名稱
若要為您的裝置提供易記的名稱,請在
/etc/multipath.conf
檔案中建立別名。若要這麼做,請使用偏好的文字編輯器將下列項目新增至檔案,取代下列預留位置:以您在在 FSx 上設定適用於 ONTAP 檔案系統的 iSCSI程序中儲存的值取
serial_hex
代。如範例所示,
3600a0980
將前置字元加入至serial_hex
值。這是適用於 ONTAP 的 Amazon FSx 使用的 NetApp ONTAP 發行版的唯一序言。 NetApp以您要在裝置上使用的易記名稱取
device_name
代。
multipaths { multipath { wwid 3600a0980
serial_hex
aliasdevice_name
} }作為替代方法,您可以將以下腳本複製並保存為 bash 文件,例如
multipath_alias.sh
. 您可以使用 sudo 權限執行指令碼,取代
(不含 3600a0980 前置詞) 以及您個別serial_hex
的序號和所需的易記名稱。此指令碼會搜尋device_name
/etc/multipath.conf
檔案中未註解的multipaths
區段。如果存在,它會在該部分附加一個multipath
條目;否則,它將創建一個新的multipaths
部分,其中包含塊設備的multipath
條目。#!/bin/bash SN=serial_hex ALIAS=device_name CONF=/etc/multipath.conf grep -q '^multipaths {' $CONF UNCOMMENTED=$? if [ $UNCOMMENTED -eq 0 ] then sed -i '/^multipaths {/a\\tmultipath {\n\t\twwid 3600a0980'"${SN}"'\n\t\talias '"${ALIAS}"'\n\t}\n' $CONF else printf "multipaths {\n\tmultipath {\n\t\twwid 3600a0980$SN\n\t\talias $ALIAS\n\t}\n}" >> $CONF fi
重新啟動
multipathd
服務以使變更/etc/multipathd.conf
生效。~$
systemctl restart multipathd.service
若要磁碟分割 LUN
下一步是使用格式化和分割 LUN fdisk
。
-
使用以下命令來驗證您的路徑
device_name
是否存在。~$
ls /dev/mapper/
device_name
/dev/
device_name
使用分割磁碟
fdisk
。您將輸入互動式提示。依照顯示的順序輸入選項。請注意,此Last sector
值會因 iSCSI LUN 的大小而有所不同 (此範例中為 10GB)。您可以使用小於最後一個磁區的值來建立多個分割區 (20971519
在此範例中)。~$
sudo fdisk /dev/mapper/
device_name
fsdisk
互動式提示隨即開始。Welcome to fdisk (util-linux 2.30.2). 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 (2048-20971519, default 2048):
2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519):
20971519
Created a new partition 1 of type 'Linux' and of size 512 B. Command (m for help):
w
The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
輸入後
w
,您的新分區/dev/mapper/
變為可用。partition_name
磁碟分割名稱
<device_name><partition_number>具有格式。1
被用作上一個步驟中fdisk
指令中使用的分割區號碼。-
使用
/dev/mapper/
作為路徑建立您的檔案系統。partition_name
~$
sudo mkfs.ext4 /dev/mapper/
partition_name
系統會以下列輸出回應:
mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=16 blocks 655360 inodes, 2621184 blocks 131059 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2151677952 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
若要在 Linux 用戶端上掛載 LUN
-
建立目錄
directory_path
做為檔案系統的掛載點。~$
sudo mkdir /
directory_path
/mount_point
-
使用下列指令掛載檔案系統。
~$
sudo mount -t ext4 /dev/mapper/
partition_name
/directory_path
/mount_point
-
(選擇性) 您可以將掛載目錄的擁有權變更為使用者。
以您的使用者名稱取代。username
~$
sudo chown
username
:username
/directory_path
/mount_point
-
(選擇性) 確認您可以從檔案系統讀取和寫入資料。
~$
echo "Hello world!" > /
directory_path
/mount_point
/HelloWorld.txt~$
cat
directory_path
/HelloWorld.txtHello world!
您已經在 Linux 用戶端上成功建立並掛接了一個 iSCSI LUN。