iSCSI可以让你使用共享存储就像使用本地设备那样简单,最近在研究虚拟化,共享存储相关的知识还是得学习学习的。
设置iSCSI target (server)和iSCSI initiator (client), iSCSI协议是一种storage area network (SAN)协议, 他允许iSCSI initiators通过正常的以太网访问使用远程iSCSI target 导出的设备。对于iSCSI initiator来说,远程storage导出的设备就像一般的,在本地挂载的硬件设备一样。
创建target服务端
安装服务端相关软件:
apt-get install iscsitarget iscsitarget-dkms iscsitarget-source
安装完毕后,默认是不启动的,修改文件/etc/default/iscsitarget:
#ISCSITARGET_ENABLE=false ISCSITARGET_ENABLE=true
导出的存储块设备可以使用lvm、镜像文件、分区等等。
修改/etc/iet/ietd.conf文件,所有导出的存储设备都是在这个文件中定义的,在/opt/目录下使用dd命令创建一个镜像文件:
dd if=/dev/zero of=/opt/etstdb bs=1M count=4000
在/etc/iet/ietd.conf文件末尾添加如下内容:
Target iqn.2012-09.com.example:storage.lun1 Lun 0 Path=/opt/testdb,Type=fileio
启动服务/etc/init.d/iscsitarget start
安装相关包:
apt-get install module-assistant debhelper
编译并加载iscsi_trgt模块:
m-a a-i iscsitarget modprobe iscsi_trgt
重新启动即可:
安装客户端相关软件:
apt-get install open-iscsi
可以看到在启动客户端时,已经自动挂在了自动搜索到了存储资源, 我们可以先手动卸载掉
iscsiadm -m node -T iqn.2012-09.com.example:storage.lun1 -p 10.1.1.167:3260 -u
1 连接到服务端查看提供了那些存储资源
iscsiadm -m discovery -t type -p target-ip
2 查看各自的记录
iscsiadm -m node
3 挂载target提供的存贮资源
iscsiadm -m node -T target-name -p target-ip:port -l
4 fdisk -l 查看
5 卸载target提供的资源
iscsiadm -m node -T target-name -p target-ip:port -u