在 RHEL/CentOS 7 上使用 iSCSI Target 和 Initiator 建立集中式安全儲存
iSCSI(Internet Small Computer System Interface)是一種儲存網路技術,允許在 IP 網路上傳輸塊級資料。它是傳統光纖通道 SAN(儲存區域網路)的替代方案,後者使用專用電纜將儲存裝置連線到伺服器。iSCSI 可以提供一種經濟高效且靈活的方式來建立集中式儲存基礎設施。
在本教程中,我們將在 RHEL/CentOS 7 伺服器上設定 iSCSI target,並使用另一臺 RHEL/CentOS 7 伺服器上的 iSCSI initiator 連線到它。我們將配置 CHAP(Challenge-Handshake Authentication Protocol)身份驗證,以確保 target 和 initiator 之間的安全通訊。
步驟 1:安裝所需的軟體包
首先,我們需要在 target 和 initiator 伺服器上安裝所需的軟體包。在 target 伺服器上,輸入以下命令:
sudo yum install scsi-target-utils -y
這將安裝“scsi-target-utils”軟體包,該軟體包提供配置 iSCSI target 所需的工具。在 initiator 伺服器上,輸入以下命令:
sudo yum install iscsi-initiator-utils -y
這將安裝“iscsi-initiator-utils”軟體包,該軟體包提供連線到 iSCSI target 所需的工具。
步驟 2:配置 iSCSI Target
現在,我們將配置 target 伺服器上的 iSCSI target。target 伺服器將向 initiator 伺服器提供儲存。target 伺服器將充當 iSCSI target。
要配置 iSCSI target,請按照以下步驟操作:
建立一個新的 LUN(邏輯單元號),該 LUN 將與 initiator 伺服器共享。在這個例子中,我們將建立一個 10 GB 的 LUN。
sudo dd if=/dev/zero of=/var/lib/iscsi_disks/lun01 bs=1M count=10000
這會在“/var/lib/iscsi_disks”目錄中建立一個名為“lun01”的 10 GB 檔案。
建立一個新的 iSCSI target 配置檔案:
sudo nano /etc/tgt/conf.d/iscsi.conf
將以下幾行新增到檔案中:
<target iqn.2021-05.example.com:lun01> backing-store /var/lib/iscsi_disks/lun01 incominguser chap_user secret_password </target>
將“iqn.2021-05.example.com:lun01”替換為 target 的唯一識別符號。將“chap_user”替換為 CHAP 身份驗證的使用者名稱,並將“secret_password”替換為 CHAP 身份驗證的安全密碼。
重新啟動 tgtd 服務以應用更改:
sudo systemctl restart tgtd
步驟 3:配置 iSCSI Initiator
現在,我們將配置 initiator 伺服器上的 iSCSI initiator。initiator 伺服器將連線到 target 伺服器上的 iSCSI target。要配置 iSCSI initiator,請按照以下步驟操作:
透過輸入以下命令來發現 iSCSI target:
sudo iscsiadm -m discovery -t sendtargets -p target_ip_address
將“target_ip_address”替換為 target 伺服器的 IP 地址。
透過輸入以下命令登入到 iSCSI target:
sudo iscsiadm -m node -T iqn.2021-05.example.com:lun01 -p target_ip_address -l
將“iqn.2021-05.example.com:lun01”替換為 target 的唯一識別符號,並將“target_ip_address”替換為 target 伺服器的 IP 地址。
透過輸入以下命令驗證 iSCSI target 是否已連線:
sudo lsblk
此命令列出 initiator 機器上可用的塊裝置。您應該看到已連線的 iSCSI target 裝置列出。
步驟 4:在 iSCSI Target 上建立檔案系統
現在 iSCSI target 已連線到 initiator 機器,我們可以在其上建立一個檔案系統。在這個例子中,我們將在 iSCSI target 上建立一個 ext4 檔案系統。要建立 iSCSI target 上的檔案系統,請按照以下步驟操作:
輸入以下命令在 iSCSI target 上建立一個新分割槽:
sudo fdisk /dev/sdb
注意:將“/dev/sdb”替換為系統上 iSCSI target 的塊裝置名稱。
在 fdisk 提示符下,按順序輸入以下命令:
鍵入“n”以建立新分割槽。
鍵入“p”以建立主分割槽。
鍵入“1”以分配分割槽號。
按“Enter”兩次以接受分割槽的第一個和最後一個扇區的預設值。
鍵入“w”以寫入更改並退出 fdisk。
接下來,使用 ext4 檔案系統格式化新分割槽,輸入以下命令:
sudo mkfs.ext4 /dev/sdb1
注意:將“/dev/sdb1”替換為您在上一步中建立的分割槽名稱。
步驟 5:掛載 iSCSI Target 檔案系統
要掛載 iSCSI target 上新建立的檔案系統,請按照以下步驟操作:
透過輸入以下命令建立檔案系統的掛載點:
sudo mkdir /mnt/iscsi_target
透過輸入以下命令掛載檔案系統:
sudo mount /dev/sdb1 /mnt/iscsi_target
透過輸入以下命令驗證檔案系統是否已掛載:
df -h
此命令列出當前掛載在系統上的檔案系統。您應該看到新掛載的 iSCSI target 檔案系統列出。
步驟 6:配置 iSCSI Target 檔案系統的自動掛載
為了確保 iSCSI target 檔案系統在重新引導後自動掛載到 initiator 機器上,我們需要配置系統在啟動時掛載它。為此,請按照以下步驟操作:
在文字編輯器中開啟 /etc/fstab 檔案:
sudo nano /etc/fstab
在檔案末尾新增以下行以自動掛載 iSCSI target 檔案系統:
/dev/sdb1 /mnt/iscsi_target ext4 defaults 0 0
儲存並退出檔案。
步驟 7:測試 iSCSI Target 檔案系統
要測試 iSCSI target 檔案系統,請在掛載點上建立一個測試檔案,並驗證 initiator 和 target 機器都可以訪問它。
要建立一個測試檔案,請輸入以下命令:
sudo touch /mnt/iscsi_target/testfile.txt
要驗證測試檔案是否存在於 iSCSI target 上,請在 target 機器上輸入以下命令:
sudo ls /mnt/iscsi_target
要驗證從 initiator 機器可以訪問測試檔案,請在 initiator 機器上輸入以下命令:
sudo ls /mnt/iscsi_target
如果在這兩種情況下都列出了測試檔案,則 iSCSI target 檔案系統已成功配置,並且可以從兩臺機器訪問。
結論
在本教程中,我們演示瞭如何在 RHEL/CentOS 7 上使用 iSCSI target 和 initiator 配置集中式安全儲存系統。透過在一臺機器上建立 iSCSI target 並將其連線到另一臺機器上的 initiator,我們可以建立一個可以從多臺機器安全訪問的集中式儲存系統。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP