LInux下的iscsi磁盘共享—基于设备的存储分离
1.理解iscsi
iscsi: 把服务器的磁盘直接划分一块出来放到内核上面,在内核上面直接下载iscsi服务,将设备共享,此时客户端就可以探测并且使用服务端的共享磁盘了,这就是基于设备的存储分离。
iscsi与nfs的区别:
- nfs是对文件系统的共享:是将服务器的磁盘以文件系统的形式映射到内核上面,然后在内核上面开启一个nfs服务,把自己的文件系统共享出去。而客户端在本地就可直接远程修改nfs上面的东西,并且同步到nfs。
- iscsi是对设备的共享,是把服务器的磁盘划分出一块放到内核上,在内核上下载iscsi服务直接将设备共享出去。而客户端可探测到共享磁盘并且使用服务端的共享磁盘。
2.搭建iscsi磁盘共享服务器
在服务端:
fdisk /dev/vdb
partprobe ##新添加一个磁盘,同步分区表
yum install targetcli -y ##安装服务
systemctl enable target ##设定开机启动
targetcli ##在其中设定
/backstores/block create westos:storage1 /dev/vdb1 ##将真实设备定义到target
iscsi/ create iqn.2019-12.com.westos:storage1 ##存储建立共享名称
/iscsi/iqn.2019-12.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1 ##设备与设定名称关联
iscsi/iqn.2019-12.com.westos:storage1/tpg1/acls create iqn.2019-12.com.westos:westoskey1 ##安全控制,产生密钥
/iscsi/iqn.2019-12.com.westos:storage1/tpg1/portals create 172.25.254.236 ##为服务开启端口
exit
firewall-cmd --permanent --add-port=3260/tcp ##火墙允许3260端口通过
firewall-cmd --reload
在客户端:
yum install iscsi-initiator-utils.x86_64 -y
iscsiadm -m discovery -t st -p 172.25.254.236 ##探测发现服务器
vim /etc/iscsi/initiatorname.iscsi ##将密钥写入文件中
1 InitiatorName=iqn.2019-12.com.westos:westoskey1
systemctl restart iscsid ##重启iscsi
iscsiadm -m node -T iqn.2019-12.com.westos:storage1 -p 172.25.254.236 -l ##认证登陆iscsi(-p指定用户,-l登陆,-u断开)
fdisk -l #可以看到这里的/dev/sda其实是由服务端共享的磁盘
fdisk /dev/sda #划分分区
partprobe
mkfs.xfs /dev/sda1
mount /dev/sda1 /mnt #挂载
cd /mnt #在里面可以进行一系列操作使用该磁盘
注意:挂载后在/mnt建立的文件都保存在/vdb/sda中,而这个磁盘不是主机中真实存在的,而是另一主机共享出来的
3.iscsi开机自动挂载
vim /etc/fstab
/dev/sda1 /mnt xfs defaults,_netdev 0 0
4.客户端iscsi的退出及删除
yum install tree -y
tree /var/lib/iscsi ##查看树形图
iscsiadm -m node -T iqn.2019-12.com.westos:storage1 -p 172.25.254.236 -u ##退出,但重启服务后又会自动登陆,网络设备共享记录仍然存在
iscsiadm -m node -T iqn.2019-12.com.westos:storage1 -p 172.25.254.236 -o delete ##删除设备的数据信息,重启服务后不会出现/dev/sda1
5.服务端删除iscsi
targetcli #进入划分共享设备的状态
ls #查看
clearconfig confirm=Ture #删除
exit #退出