如果机器的磁盘空间不够,可以用iscsi把服务器172.18.30.18上面划出一片空间,远程挂上来用。
注意,服务器用losetup的这种做法是为了将来k8s也可以这样用动态iscsi卷
服务器端安装
登录172.18.30.18
安装:
1yum install -y targetcli targetd`
用文件来虚拟LVM卷:
1cd /glusterfs/iscsi-volumes/
2生成20TB文件
3dd if=/dev/zero of=k8s-iscsi-volumes.img bs=1G count=20000
4export LOOP=`losetup -f`
5losetup $LOOP k8s-iscsi-volumes.img
6vgcreate vg-targetd $LOOP
修改targetd.yaml:
1vi /etc/target/targetd.yaml
2password: xxxxxxxx
3# defaults below; uncomment and edit
4# if using a thin pool, use <volume group name>/<thin pool name>
5# e.g vg-targetd/pool
6pool_name: vg-targetd
7user: admin
8ssl: false
9target_name: iqn.2020-04.com.ddky:renhe-18-30-18
注意,这个文件生成后,就不需要改动了,如果以后target_name变了,也不用管,也不需要重启targetd
启动服务:
1systemctl enable --now target
2systemctl enable --now targetd
运行一下命令,看看显示结果 pvdisplay vgdisplay lvdisplay targetcli ls /
注意:lvdisplay结果和targetcli ls /结果都是空
如果有定义好的iscsi,3260端口才会开放。所以现在只开启了18700的targetd,3260未开放中。
如果以后定义好了,那么显示结果如下图:
那如果想要彻底删除某个已经存在的iscsi卷,三步曲:
1首先删掉block设备
2targetcli /backstores/block delete vg-targetd:pvc-harbor
3
4然后删除iscsi
5targetcli /iscsi delete iqn.2020-07.com.ddky:renhe-18-30-18
6
7最后删除lv
8lvremove /dev/vg-targetd/pvc-harbor
建立新的卷的方法:
1建立新的lv pvc-harbor, 200G
2lvcreate -L 200G -n pvc-harbor vg-targetd
3
4建立新的block设备
5targetcli /backstores/block create vg-targetd:pvc-harbor /dev/vg-targetd/pvc-harbor
6
7建立新的iqn
8targetcli /iscsi create iqn.2020-07.com.ddky:renhe-18-30-18
9
10建立新的lun,portal会自动建立,3260端口会开放
11targetcli /iscsi/iqn.2020-07.com.ddky:renhe-18-30-18/tpg1/luns create /backstores/block/vg-targetd:pvc-harbor
12
13建立新的acls
14targetcli /iscsi/iqn.2020-07.com.ddky:renhe-18-30-18/tpg1/acls create iqn.2020-07.com.ddky:harbor-18-31-28
15
16设置acls的鉴权
17targetcli /iscsi/iqn.2020-07.com.ddky:renhe-18-30-18/tpg1/acls/iqn.2020-07.com.ddky:harbor-18-31-28 set attribute authentication=0
18targetcli /iscsi/iqn.2020-07.com.ddky:renhe-18-30-18/tpg1/acls/iqn.2020-07.com.ddky:harbor-18-31-28 set auth userid=admin password=nishiwode
19
20如果lun只对srv2开放,不对srv1开放,方法如下:
21/> iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/acls create iqn.1994-05.com.redhat:srv1 add_mapped_luns=false
22/> iscsi/iqn.2003-01.local.rhce.ipa:target/tpg1/acls create iqn.1994-05.com.redhat:srv2
ok,如上,服务器端就设置好了
这里没有重启,只是运行了targetcli saveconfig 实测,真的不需要重启target,systemctl restart target
客户端安装
安装iscsi客户端
1yum install iscsi-initiator-utils -y
修改initiatorname.iscsi,也就是自己的iqn号
1vi /etc/iscsi/initiatorname.iscsi
2InitiatorName=iqn.2020-07.com.ddky:harbor-18-31-28
修改iscsid.conf
1vi /etc/iscsi/iscsid.conf,增加3行
2node.session.auth.authmethod = CHAP
3node.session.auth.username = admin
4node.session.auth.password = xxxxxxxx
重启服务:
1systemctl restart iscsid
发现一下对端:
1# iscsiadm -m discovery -t sendtargets -p 172.18.30.18:3260
2172.18.30.18:3260,1 iqn.2020-07.com.ddky:renhe-18-30-18
登录ISCSI:
1# iscsiadm -m node -T iqn.2020-07.com.ddky:renhe-18-30-18 -p 172.18.30.18:3260 --login
2Logging in to [iface: default, target: iqn.2020-07.com.ddky:renhe-18-30-18, portal: 172.18.30.18,3260] (multiple)
3Login to [iface: default, target: iqn.2020-07.com.ddky:renhe-18-30-18, portal: 172.18.30.18,3260] successful.
查看session:
1iscsiadm -m session -P3 | less
系统中会多出一块盘,/dev/sda
直接格式化,不要分区,mkfs.xfs /dev/sda
查出uuid
1blkid /dev/sda
2/dev/sda: UUID="58024012-aa03-4091-a11a-0bb74beeed5a" TYPE="xfs"
编辑/etc/fstab
1vi /etc/fstab
2UUID=58024012-aa03-4091-a11a-0bb74beeed5a /mnt xfs _netdev 0 0
Ok, 搞定。
增加给vis-18-31-48增加pxe的sanboot启动硬盘的方法:
1#划个lvc,用的是vg-targetd的20T中的80G
2lvcreate -L 80G -n pvc-vis-18-31-48 vg-targetd
3
4#建立block块设备
5targetcli /backstores/block create vg-targetd:pvc-vis-18-31-48 /dev/vg-targetd/pvc-vis-18-31-48
6
7#建立30.18上的iscsi服务端,似乎用renhe-18-30-18比较好,但是不好区分多个卷
8targetcli /iscsi create iqn.2020-10.com.ddky:vis-18-31-48
9
10#建立luns,会自动建立portal
11targetcli /iscsi/iqn.2020-10.com.ddky:vis-18-31-48/tpg1/luns create /backstores/block/vg-targetd:pvc-vis-18-31-48
12
13#建立客户端的iscsi,不加认证
14targetcli /iscsi/iqn.2020-10.com.ddky:vis-18-31-48/tpg1/acls create iqn.2020-10.com.ddky:vis-18-31-48
这样客户端用 iqn.2020-10.com.ddky:vis-13-31-48 就可以mount出来