安装部署
IP |
角色 |
192.168.182.156 |
tgtd |
192.168.182.157 |
client1 |
192.168.182.158 |
client2 |
1 2 3
| $ yum install -y scsi-target-utils $ chkconfig tgtd on $ service tgtd start
|
配置方法2种:
- tgtadm,在线修改
- conf配置文件
在服务端增加一个Target
主要流程:
- 建立target
- 为target增加backstorage
- 配置客户端访问target的控制策略
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $ tgtadm --lld iscsi --op new --mode target --tid 1 --targetname iqn.2015-05-04.org.tecstack.storage.tg1
$ mkdir /opt/tgtstorage $ dd if=/dev/zero of=/opt/tgtstorage/disk0.img bs=1M count=5120 $ losetup -f /opt/tgtstorage/disk0.img $ losetup -a $ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /dev/loop0
$ dd if=/dev/zero of=/opt/tgtstorage/disk1.img bs=1M count=5120 $ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 --backing-store /opt/tgtstorage/disk1.img
$ tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address=192.168.182.157 $ tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address=192.168.182.158 $ tgt-admin --dump |grep -v default-driver > /etc/tgt/conf.d/my-targets.conf $ tgtadm --lld iscsi --mode target --op show $ tgt-admin --show
|
在服务端禁用某个客户端:
1
| $ tgtadm --lld iscsi --mode target --op unbind --tid 1 --initiator-address=192.168.182.158
|
在客户端使用target
iscsi存储使用的主要流程:
- 发现target
- login到target
- 使用存储管理工具使用块设备
1 2 3 4 5 6 7 8 9 10
| $ iscsiadm --mode discovery --type sendtargets --portal 192.168.182.156 $ ls -lh /var/lib/iscsi/nodes/ $ iscsiadm -m node $ iscsiadm -m node -T iqn.2015-05-04.org.tecstack.storage.tg1 --login $ fdisk -l $ iscsiadm -m node -T iqn.2015-05-04.org.tecstack.storage.tg1 --logout $ fdisk -l $ iscsiadm -m node -o delete -T iqn.2015-05-04.org.tecstack.storage.tg1 $ ls -lh /var/lib/iscsi/nodes/ $ iscsiadm -m node -T iqn.2015-05-04.org.tecstack.storage.tg1 -p 192.168.182.156 -- op update -n node.startup -v automatic
|
当login到target之后,就可以使用,比如通过LVM:
1 2 3 4 5 6 7 8 9 10 11 12
| $ fdisk -l $ pvcreate /dev/sdb $ pvdisplay $ vgcreate myiscsi /dev/sdb $ vgdisplay $ lvcreate -l 1024 -n vdisk0 myiscsi $ lvdisplay $ ls -lh /dev/myiscsi/vdisk0 $ mkfs.ext4 /dev/myiscsi/vdisk0 $ mkdir -p /opt/myiscsidata $ mount /dev/myiscsi/vdisk0 /opt/myiscsidata/ $ df -h
|
运行过程中为target添加后端存储,客户端需要logout后重新login才能看到。但是如果重新login后块设备名会变化,比如变成/dev/sdc
。可以通过文件系统的UUID来识别设备并挂载:
GFS2测试
创建和挂载iscsi块存储
在target端创建LUN
1 2 3 4 5
| $ dd if=/dev/zero of=/opt/tgtstorage/disk_gfs.img bs=1M count=5120 $ tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 3 --backing-store /opt/tgtstorage/disk_gfs.img $ tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address=192.168.182.157 $ tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address=192.168.182.158 $ tgt-admin --show
|
在client1和client2上挂载块设备:
1 2 3 4
| $ iscsiadm --mode discovery --type sendtargets --portal 192.168.182.156 $ iscsiadm -m node $ iscsiadm -m node -T iqn.2015-05-04.org.tecstack.storage.tg1 --login $ fdisk -l
|
使用luci配置集群:
在target端配置:
1 2
| $ yum -y install luci $ service luci start
|
在client1和client2上配置:
1 2 3
| $ yum install -y ricci $ service ricci start $ passwd ricci
|
通过访问target的https(默认端口8084,账号同Linux本地root账号),创建集群,新增节点,选择下载包,勾选启用共享文件系统。管理工具会自动帮助安装:cman rgmanager lvm2-cluster sg3_utils gfs2-utils
,并启动相关服务。
在一台集群节点上创建LVM逻辑卷,格式化为GFS文件系统
识别scsi和块设备的对应关系:
1 2
| $ ls -l /dev/disk/by-path/*tecstack* $ scsi_id -gu /dev/sdb
|
在client1上执行:
1 2 3 4
| $ pvcreate /dev/sdb $ vgcreate gfstest /dev/sdb $ lvcreate -l 1024 -n gfsdisk0 gfstest $ mkfs.gfs2 -j2 -p lock_dlm -t gfstest:gfs2 /dev/gfstest/gfsdisk0
|
在两台集群节点上同时挂载GFS文件系统
在client1和client2上执行:
1 2
| $ mkdir /mnt/gfstest $ mount /dev/gfstest/gfsdisk0 /mnt/gfstest
|
参考:
- creating and managing iscsi targets
- tgtadm man page
- iscsi使用案例
- GFS配置