Target(192.168.18.128):建置及規劃 iSCSI 儲存設備
Initiator(192.168.18.131):主要功能是提供電腦主機連線到 Target 作磁碟存取
(注意:使用 VMware Player,在安裝完 1 個虛機後,雖然可以複製更名成另一個新的虛機,但在 iSCSI 的練習中,iSCSI Initiator 會在開機時(/etc/fstab)掛載失敗(fsck fail),除非你有時間去打怪,不然請避免使用專案複製方式練習)
iSCSI Target(192.168.18.128)
# yum search scsi | grep --color target
scsi-target-utils.x86_64 : The SCSI target daemon and utility programs
# yum install -y scsi-target-utils // 安裝 iSCSI Target 套件
# cp /etc/tgt/targets.conf /etc/tgt/targets.conf.backup // 備份原始設定檔
# fdisk -l
Disk /dev/sdb: 1073 MB, 1073741824 bytes // 使用 VMware Player 配置了一個 1GB
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
# fdisk /dev/sdb // 配置分享磁區,不用格式化
# fdisk -l
# vim /etc/tgt/targets.conf // 設定分享磁區
<target iqn.2012-10.com.example:server.target1="iqn.2008-09.com.example:server.target1">
backing-store /dev/sdb1
</target>
啟動 iSCSI Target 服務:服務名稱為 tgtd
# service tgtd start
Starting SCSI target daemon: [ OK ]
開啟防火牆:通訊埠為 3260
# iptables -A INPUT -p tcp -m tcp --dport 3260 -j ACCEPT
iSCSI Initiator(192.168.18.131)
# yum search scsi | grep --color initiator
iscsi-initiator-utils.i686 : iSCSI daemon and utility programs
# yum install -y iscsi-initiator-utils.i686 // 安裝 iSCSI Initiator 套件
# iscsiadm -m discovery -t st -p 192.168.18.128 // 搜尋定分享磁區
Starting iscsid: [ OK ] // 啟動 iSCSI Initiator 服務
192.168.18.128:3260,1 iqn.2008-09.com.example:server.target1
補充:若要再偷賴點,可在搜尋後就立即登入
# iscsiadm -m discovery -t st -p 192.168.18.128 -l
登入 iSCSI Target
# iscsiadm -m node -l // -l:login;-u:logout
Logging in to [iface: default, target: iqn.2008-09.com.example:server.target1, portal: 192.168.18.128,3260] (multiple)
Login to [iface: default, target: iqn.2008-09.com.example:server.target1, portal: 192.168.18.128,3260] successful.
補充:以下 2 種方式皆可登入。查看 iSCSI 載入狀態
# dmesg | tail
查看磁區狀態
# fdisk -l
硬碟配置、格式化及掛載
# fdisk /dev/sdb
# fdisk /dev/sdc
# mkfs.ext4 /dev/sdb1 ; mkfs.ext4 /dev/sdc1
# mkdir /mnt/iscsi1
# mkdir /mnt/iscsi2
# mount /dev/sdb1 /mnt/iscsi1
# mount /dev/sdc1 /mnt/iscsi2
開機時掛載
# vim /etc/fstab
/dev/sdb1 /mnt/iscsi1 ext4 _netdev 1 2 // 裝置名稱亦可使用 UUID,使用指令# blkid /dev/sdb1 查看
/dev/sdc1 /mnt/iscsi2 ext4 _netdev 1 2
# mount -a
# df
/dev/sdb1 2060144 35840 1919656 2% /mnt/iscsi1
/dev/sdc1 1027004 17668 957168 2% /mnt/iscsi2
若下次開機時不再掛載使用,除了移除/etc/fstab的設定外,也要登出並停止相關服務,否則下次開機會停頓很久,因為服務程式在搜尋網域可用的target,但仍然可以開機。
# iscsiadm -m node -u
# chkconfig iscsi off
# chkconfig iscsid off
問題探討
當有二個 initiator 同時存取同一個 iSCSI 裝置時,資料會毀損。
因為這二個 initiator 並不會互相通知更新資料,故除了資料毀損外,各自上傳的檔案,對方也看不到。
叢集檔案系統(Cluster File System、CFS)應用,像是 RedHat GFS 或是 Oracle OCFS2 檔案系統,便是解決此問題的方法。
沒有留言:
張貼留言