这是最简单的配置,只有一个target和一个portal group。没有使用用户认证。作为测试已经足够了。
然后就可以启动这个target了:
chmod 600 /etc/ctl.conf
service ctld start
注意那个chmod的步骤是必须的,否则服务无法启动,因为一个全局可读的配置文件是不安全的。
启动完可以看一下日志,以确定没有出错。
tail /var/log/messages
iSCSI initiator
一般不拿FreeBSD做客户端,只是有时会需要在服务端测试一下target的配置,所以可能还是会用到FreeBSD下的Initiator的,所以记录了一下配置方法附后供参考。本节以实际的桌面环境配置为例。
我的桌面是Linux Mint 16,以下供参考。不过不同的Linux发行版应该都差不多。Mac貌似需要商业软件支持,没法介绍。微软有为Windows免费提供相关的Initiator软件(高版本Windows已内置),配置方法附后。
首先需要安装软件:
sudo apt-get install open-iscsi open-iscsi-utils
然后启动服务:
sudo service open-iscsi start
然后搜索一下target :
sudo iscsiadm -m discovery -t sendtargets -p 192.168.x.x
在结果中可以看到之前配置好的target。
登录连接target:
sudo iscsiadm -m node -T iqn.2014-05.com.example:target0 -p 192.168.x.x -l
现在打开系统首选项-磁盘(或你的发行版上的相关工具,或者你习惯用命令行也行),即可看到一个新增的磁盘(在我的电脑上,它的设备名叫/dev/sdc),磁盘名叫做FREEBSD CTLDISK,处于未格式化状态。用EXT4格式化,再mount即可像本地盘一样直接使用了。
至此一个基本的基于ZFS的iSCSI服务就算搭建完成。
更复杂的应用
前面说的target配置是全开放的,整个网段内所有客户端都可以自由连接,为了安全起见,需要加入用户认证。
最简单的方法就是在target配置里加入用户名密码:
target iqn.2014-05.com.example:target0 {
portal-group san
chap user password1234
lun 0 {
path /dev/zvol/tank/testtarget
blocksize 4096
size 4G
}
}
注意,其中密码默认需要不少于12位。但是如果有多个用户需要使用的话,这样就不方便了,这时就需要使用auth-group:
auth-group ag0 {
chap user1 password1234
chap user2 password1234
}
target iqn.2014-05.com.example:target0 {
auth-group ag0
portal-group san
lun 0 {
path /dev/zvol/tank/testtarget
blocksize 4096
size 4G
}
}