用FreeBSD10搭建基于ZFS的iSCSI服务(3)

现在在initiator端同样需要指定用户名密码才能连接了。但是用户名密码并不是在命令行里输入,而是需要配置给open-iscsi服务。修改/etc/iscsi/iscsid.conf,加入:

node.startup = automatic
node.session.auth.authmethod = CHAP
node.session.auth.username = user
node.session.auth.password = password1234

其中node.startup设置为automatic是为了让initiator自动连接。这项并不是必须的,它的默认值是manual,即需要手动连接target,设置为automatic即可在系统重启后自动连接target,而不需要再手工运行iscsiadm去连接。

node.session.auth的username和password就是前面配置的target的用户名和密码。同理,如果配置了portal group的用户认证,也可以在这里配置discovery的用户名和密码。

然后重启open-iscsi服务:
sudo service open-iscsi restart
现在再执行:
sudo iscsiadm -m node -T iqn.2014-05.com.example:target0 -p 192.168.x.x -l
即可登录连接target。连接后即可mount使用。

如果像前面那样把node.startup配置为automatic,则启动后会自动连接,只需要直接mount或如下配置成自动mount:

先取得UUID:
sudo blkid /dev/sdc
或者用/dev/disk/py-path/方式的路径,然后把它配置到fstab里(以by-path路径为例,以UUID方式参见fstab中的默认配置):

/dev/disk/by-path/ip-192.168.x.x:3260-iscsi-iqn.2014-05.com.example:target0-lun-0 /mnt/iscsi      ext4    _netdev,errors=remount-ro 0      1

注意,选项里必须有_netdev一项否则在启动时会等待很长时间后mount失败。

试试ZFS

可以注意到,前面有一个步骤是客户端需要对target进行格式化,我是格式化为EXT4格式的,那么服务端的ZFS还有效吗?可以来试试。

首先在mount好的路径里创建一些文件,然后到服务端做个快照:
zfs snapshot tank/testtarget@test1
然后再回到客户端,把相关的文件删除或修改,然后umount并断开(否则不能对服务端ZFS作修改操作):
sudo umount /dev/sdc
sudo iscsiadm -m node -T iqn.2014-05.com.example:target0 -p 192.168.x.x -u
然后在服务端把iSCSI服务给停了:
service ctld stop
现在可以试试回滚快照——当然也可以做一个克隆,然后把target指向克隆,这里以简单的回滚操作为例:
zfs rollbak tank/testtarget@test1
再重启服务:
service ctld start
客户端重新连接:
sudo iscsiadm -m node -T iqn.2014-05.com.example:target0 -l
sudo mount /dev/sdc /mnt/iscsi
现在再看之前修改过或删除掉的文件又恢复原状了。可见ZFS卷同样可以实现ZFS的功能,并不会因为它被格式化为EXT4而失效。

附:FreeBSD下的Initiator配置


首先启动 iscsid 服 务。因为通常情况下只是测试一下,可以直接用iscsid命令启动服务,因为用service命令启动的话还需要配置rc.conf,而且即使是直接启动也可以用service命令停止它。


然后用连接target:
iscsictl -A -p 192.168.x.x -t iqn.2014-05.com.example:target0
然后用不带参数的iscsictl看一下连接状态和设备名。注意:如果状态显示为Waiting for iscsid(8),则说明iscsid服务未启动。


没问题的话就:


mount -t fstype /dev/da0 /mnt/iscsi


其中fstype为文件系统名,da0为连接后的设备名。


附:Windows的Initiator配置

因为Mac不能用,郁闷之余看了一下Windows的配置,发现还是挺简单的,连重启都不用。

首先在微软官网下载:Microsoft iSCSI initiator

然后安装之。注意,需要开启MS DTC服务。

安装后运行之,在[Discovery]页的[Target Portals]一栏里点[Add],输入Portal的IP地址或DNS名称,比如:192.168.x.x。

确定后在[Targets]页里即可看到服务端配置的targets,选择之,然后点[Log On],其状态会从Inactive变成Connected。注意这时有个选项叫“Automatically restore this connection when the system boots”,选中之可以在系统启动时自动连接。

现在打开系统管理中的磁盘管理,就会弹出提示说系统中多了一块硬盘,选择之并格式化为你想要的文件系统格式,比如FAT32或NTFS,之后就可以像普通硬盘一样使用它了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/df9a03059a2feb2cfd81a8703dcbdfd6.html