iSCSI远程块存储
一、iSCSI概念
iSCSI(Internet SCSI)支持从客户端(发起端)通过IP向远程服务器上的SCSI存储设备(目标)发送SCSI命令。iSCSI限定名称用于确定发起端和目标,并采用iqn.yyyy-mm.{reverse domain}:label的格式。默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文端口
二、ISCSI 名称设定
iSCSI发起端:需要访问原始SAN存储的客户端。iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户”
iSCSI目标门户:通过网络向发起端提供目标的服务器。IQN:“iSCSI限定名称”。每个发起端和目标需要唯一名称进行标识,
最好的做法是使用一个在Internet上可能独一无二的名称。
三、iSCSI 目标配置
******服务端******
iscsi服务安装
#yum install -y targetcli
#systemctl start target
#systemctl enable target
#fdisk /dev/vdb
+2G (大小可自行设定)
#partprobe
进入iSCSI目标交互式配置模式如下设置
#targetcli
/> /backstores/block create westos:storagel /dev/vdb1/> /iscsi create iqn.2017-12.com.example:storage1
/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/acls create iqn.2017-12.com.example:westoskey
/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/westos:storagel
/> iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.114
/> exit
火墙策略设置
#firewall-cmd --permanent --add-port=3260/tcp
#firewall-cmd --reload
四、访问iscsi存储
******客户端******安装iscsi软件:
# yum search iscsi# yum install iscsi-initiator-utils.x86_64 -y
# systemctl start iscsi
访问设置如下:
# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2017-12.com.example:westoskey
# iscsiadm -m discovery -t st -p 172.25.254.114
# iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -l
# fdisk -l
五、网络设备挂载
1)手动挂载
# fdisk /dev/sda# partprobe
# mkfs.xfs /dev/sda1
# mount /dev/sda1 /mnt/
# cd /mnt/
# touch file
2)自动挂载
# blkid# vim /etc/fstab
UUID="431a926b-84ec-4aa2-bde4-25e0f89dc24b" /mnt xfs defaults,_netdev 0 0
注:
使用blkid确定文件系统UUID并使用UUID挂载,而不是/dev/sd*设备名称。(每次引导时显示的设备名称都不同,具体取决于iSCSI设备通过网络进行响应的顺序。如果按设备名称挂载,这会导致使用错误的设备。)
在/etc/fstab中使用 _netdev 作为挂载选项。(这将确保客户端不会尝试挂载文件系统,直至启用联网。否则,在引导时系统
将出错)
确保iscsi服务在引导时启动
六、中断使用 iSCSI 目标
******客户端******
# umount /mnt/
# yum install tree# tree /var/lib/iscsi 方便查看
#iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -u
(退出iSCSI目标 , 以暂时断开连接)
# iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -o delete
(删除iSCSI目标的本地记录,以永久断开连接)
# fdisk -l
# tree /var/lib/iscsi
# rm -rf /var/lib/iscsi/nodes/*
# rm -rf /var/lib/iscsi/send_targets/*
******服务端*******
# targetcli
/> /clearconfig confirm=true
七、ISCSI远程块存储为LVM
由于lvm其能够进行扩容设置,故我们在今后的学习中会用到的比较多。其ISCSI远程存储流程我们单独来操作一遍。
******服务端*******
# fdisk /dev/vdb
8e
# pvcreate /dev/vdb1
# vgcreate -s 4M iscsi_vg0 /dev/vdb1
# vgdisplay
# lvcreate -l 255 -n iscsi_lv0 iscsi_vg0
# targetcli
/> /backstores/block create Sunshine:storage1 /dev/iscsi_vg0/iscsi_lv0 /> /iscsi create iqn.2017-12.com.example:storage1
/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/acls create iqn.2017-12.com.example:keyMY
/> /iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/Sunshine:storage1
/> iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.114
/> exit
******客户端******
# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2017-12.com.example:keymy
# systemctl restart iscsi
# iscsiadm -m discovery -t st -p 172.25.254.114
# iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -l
#fdisk -l
...
Disk /dev/sda: 1069 MB, 1069547520 bytes, 2088960 sectors
Units = sectors of 1 * 512 = 512 bytes
...
若出现报错其中一解决方式如下:
# tree /var/lib/iscsi
# rm -rf /var/lib/iscsi/nodes/*
# rm -rf /var/lib/iscsi/send_targets/*
# systemctl restart iscsid.service
扩容:
[Server]# fdisk /dev/vdb
+500M
8e
# partprobe
# pvcreate /dev/vdb2
# vgextend iscsi_vg0 /dev/vdb2
# lvextend -L 1500M /dev/iscsi_vg0/iscsi_lv0
# lvs
[C lient]
# iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -u
# iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.114 -l
# fdisk -l
...
Disk /dev/sda: 1572 MB, 1572864000 bytes, 3072000 sectors
Units = sectors of 1 * 512 = 512 bytes
...