OpenSolaris 上的 iSCSI

本文介绍在 OpenSolaris 2008.11 上的 zfs 的文件系统,作为 iSCSI target 被 Microsoft iSCSI Initiator 软件识别,并挂接为一个 NTFS 磁盘的过程。

OpenSolaris 上打开服务:
bash-3.2# svcadm enable iscsitgt
bash-3.2# svcs iscsitgt
STATE????????? STIME??? FMRI
online???????? 23:38:51 svc:/system/iscsitgt:default

建立文件系统:

bash-3.2# zfs create -V 20M rpool/iscsitest
bash-3.2# zfs set shareiscsi=on? rpool/iscsitest
bash-3.2# iscsitadm list target
Target: rpool/iscsitest
iSCSI Name: iqn.1986-03.com.sun:02:098fd2f3-cb94-6833-dcf6-e75074a48a4d
Connections: 0
添加能够 discover target 的主机
# iscsiadm modify initiator-node -A simon
# iscsiadm add discovery-address 192.168.7.168
# iscsiadm modify discovery -t enable

# iscsiadm list discovery-address
Discovery Address: 192.168.7.168:3260

下载安装 Microsoft iSCSI Initiator ? 后运行。Discovery->Add,手工添加 Target 主机的 IP 地址。Targets->Logon,应该显示状态为 “Connected”。

Windows 上运行 :diskmgmt.msc,一个转换磁盘的对话框会出现,相当于系统又增加了一个硬盘。
不过一旦磁盘被格式化为 NTFS 分区,而又通过 zfs 命令修改文件系统大小,则 NTFS 的数据会全部丢失。要扩充的话,只能再新建一个 zfs ,把新的 iscsi 磁盘作为 mount 点挂接到原来的 NTFS 分区。