Linux中的ISCSI(设置设备的共享)
1.ISCSI设置设备的共享:
-1-建立共享存储设备并进行获取
<1>在服务端查看本机的内核版本是多少《服务端》
[[email protected] ~]# hostnamectl
[[email protected] ~]# cat /etc/yum.repos.d/yum.repo
<2>在服务端安装targetcli软件《服务端》
[[email protected] ~]# yum search targetcli
[[email protected] ~]# yum install targetcli -y ##用什么版本的下什么版本的工具
[[email protected] ~]# targetcli
<3>建立分区(在这之前利用fdisk /dev/vdb创建一个/dev/vdb的主分区,标签为linux lvm,因为这个可以进行拉伸)《服务端》
[[email protected] ~]# pvcreate /dev/vdb ##创建pv
[[email protected] ~]# pvdisplay ##查看最小物理单元
[[email protected] ~]# vgcreate iscsi_vg0 /dev/vdb ##创建vg
[[email protected] ~]# vgdisplay
[[email protected] ~]# lvcreate -l 255 -n iscsi_lv0 iscsi_vg0 ##创建lv
[[email protected] ~]# lvdisplay ##查看lv的最小物理单元
建立分区:
<4>配置共享存储设备《服务端》
[[email protected] yum.repos.d ~]# targetcli
/> /backstores/block create westos:storage1 /dev/iscsi_vg0/iscsi_lv0 ##起一个别名
/> iscsi/ create iqn.2019-02.com.westos:storage1 ##全局唯一的限定方式,westos.com这个域在19年2月的时候共享storage1这个设备,使用的方式是iqn
/> iscsi/iqn.2019-02.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1
/> iscsi/iqn.2019-02.com.westos:storage1/tpg1/acls create iqn.2019-02.com.westos:storage1key ##设定一个**
/> iscsi/iqn.2019-02.com.westos:storage1/tpg1/portals create 172.25.254.128 ##输入服务端的ip,共享存储设备在哪个主机,输入哪个ip
/> exit
注意:
/> iscsi/iqn.2019-02.com.westos:storage1/tpg1/luns create /backstores/block/westos:storage1 ##从iscsi/iqn.2019-02.com.westos:storage1/tpg1/luns可以访问到/backstores/block/westos:storage1,由/backstores/block/westos:storage1可以访问到真实存在的/dev/iscsi_vg0/iscsi_lv0
<5>在客户端安装iscsi软件:
[[email protected] ~]# yum search iscsi
[[email protected] ~]# yum install iscsi-initiator-utils.x86_64 -y
<6>尝试发现ip为172.25.254.128的共享存储设备(会出现报错iscsiadm: cannot make connection to 172.25.254.128: No route to host
)《客户端》
[[email protected] ~]# iscsiadm -m discovery -t st -p 172.25.254.128 ##后面是discovery的话,-m代表动作
<7>在服务端打开火墙《服务端》
[[email protected] ~]# systemctl start firewalld
[[email protected] ~]# systemctl status firewalld
<8>开启服务端中共享存储设备的端口,重新加载后查看列出《服务端》
[[email protected] ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]# firewall-cmd --list-all
<9>再次尝试发现ip为172.25.254.128的共享存储设备,发现可以找到共享存储设备《客户端》
[[email protected] ~]# iscsiadm -m discovery -t st -p 172.25.254.128
注意:
在客户端安装这个软件,寻找或发现st硬盘(查询到的结果为172.25.254.128:3260,1 iqn.2019-02.com.westos:storage1)
<10>登陆ip为172.25.254.128主机上的共享存储设备iqn.2019-02.com.westos:storage1
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 -p 172.25.254.128 -l ##-m 指定节点-T 指定要去的共享名称 -p 指定要登陆有共享设备的主机ip -l 登陆 -u表示登出
*注意:
出现报错是可能是因为认证的原因
<11>进入/etc/iscsi/initiatorname.iscsi 文件,进行认证密码的修改并重启服务《客户端》
[[email protected] ~]# vim /etc/iscsi/initiatorname.iscsi
[[email protected] ~]# systemctl restart iscsid
文件中添加的内容如下(内容在服务端之前设置的)
InitiatorName=iqn.2019-02.com.westos:storage1key
<12>再次登陆ip为172.25.254.128主机上的共享存储设备iqn.2019-02.com.westos:storage1
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 -p 172.25.254.128 -l
<13>查看系统真实存在的设备,发现里面出现了一个新的共享设备《客户端》
[[email protected] ~]# fdisk -l
<14>将其设备格式化并进行挂载,然后查看其设备是否成功挂载《客户端》
[[email protected] ~]# mkfs.xfs /dev/sda
[[email protected] ~]# mount /dev/sda /mnt
[[email protected] ~]# df
-2-扩充系统存储设备
<15>在服务端重新建立一个分区,用以扩充共享设备《服务端》
[[email protected] ~]# fdisk /dev/vdb
[[email protected] ~]# partprobe
<16>依次将其分区加入到共享设备中(pv->vg->lv)《服务端》
[[email protected] ~]# pvcreate /dev/vdb2
[[email protected] ~]# vgextend iscsi_vg0 /dev/vdb2
[[email protected] ~]# lvextend -l 510 /dev/iscsi_vg0/iscsi_lv0
<17>安装tree,查看/var/lib/iscsi/下的文件便可以呈现树状形式《客户端》
[[email protected] ~]# yum install tree -y
[[email protected] ~]# tree /var/lib/iscsi/ ##可以查看到创建的共享设备的名称
<18>将其共享设备退出登陆后,再次进行登陆(刷新)《客户端》
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 172.25.254.128 -u
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 172.25.254.128 -l
<19>再次查看系统真实存在的设备,发现共享存储设备的容量相对之前增加了《客户端》
[[email protected] ~]# fdisk -l
注意:
如果不出现sda,再次退出登陆然后登陆即可
总结:
1.操作都在228这台主机,存储在128这台主机(存储分离),提高了系统的稳定性,即使所在的操作系统挂掉之后,另外一个也能保持存储
2.分配的主机,注册时是随机的
3.storage(存储),有一个大的共享存储,对外不开放的,很多主机(os:对外开放的)
4.最直接的方法是硬盘的管理权通过网线和主机间实现io的传输
5.用什么版本的下什么版本的工具
6.创建LVM的原因是可以拉伸
7.partprobe出现报错是因为光驱(sr0)的原因,将其disconnect之后就不会出现报错了
8.蓝色表示目录,紫色表示目录中的文件
9.出现报错是可能是因为认证的原因
10.lvdisplay可以查看最终拉伸后的PE
11.westos.com这个域在19年2月的时候共享storage1这个设备,使用的方式是iqn
12.设定一个**,别人在使用的时候要认证
13.共享存储设备在哪个主机,输入哪个ip
14.在客户端安装这个软件,寻找或发现st硬盘
15.no route to host可能的原因是因为主机的火墙原因,直接关闭端口
16.-m 指定节点-T 指定要去的共享名称 -p 指定要登陆有共享设备的主机ip -l 登陆 -u表示登出
17.ISCSI名称设定:ISCSI发起端:需要访问原始SAN存储的客户端。ISCSI目标:从ISCSI服务器提供的远程硬盘磁盘,或“目标门户”。ISCSI目标门户:通过网络向发起端提供目标的服务器。IQN:“ISCSI限定名称”,每个发起端和目标需要唯一名称进行标识最好的做法就是使用一个再Internet上可能独一无二的名称
2.共享存储设备进行永久挂载出现的报错
<1>将共享存储设备进行永久挂载
[[email protected] ~]# vim /etc/fstab
自动挂载文件中写入的内容如下(如果不行的话,输入sda1):
/dev/sda /mnt xfs defaults 0 0
<2>**后查看正在挂载的设备,发现成功将共享存储设备挂载
[[email protected] ~]# mount -a
[[email protected] ~]# df
<3>将主机进行重启
[[email protected] ~]# reboot
<4>重启后发现系统无法正常运行,需手动进行关闭
图一:可以看到重新开其虚拟机时出现了以下错误:
图二:进入虚拟机的虚拟管理配置(进入其硬件设备管理),双击server即可
图三:将光盘放至第一位,即系统会优先访问光盘
图四:重新开启虚拟机并进行恢复挽救,输入以下命令后重启开启即可
chroot /mnt/sysimage
vim /etc/fstab
/dev/sda1 /mnt xfs defaults,_netdev 0 0
vim /etc/sysconfig/selinux
图五:在/etc/fstab中更改的内容如下:
/dev/sda1 /mnt xfs defaults,_netdev 0 0
3.共享存储设备的卸载
-1-进行临时卸载
<1>退出ip为172.25.254.128的主机的共享存储设备的登陆
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 172.25.254.128 -u
<2>查看系统可以识别的设备,发现没有之前创建的共享存储设备
[[email protected] ~]# fdisk -l
<3>重启iscsi服务后,再次查看系统可以识别的设备,发现可以查看到之前创建的共享存储设备
[[email protected] ~]# systemctl restart iscsi
[[email protected] ~]# fdisk -l
<4>利用tree命令查看/var/lib/iscsi/文件,发现其中依旧有之前创建的共享存储设备,说明并没有删除成功,说明共享存储设备是临时卸载
[[email protected] ~]# tree /var/lib/iscsi/
-2-进行永久卸载
<1>先将/mnt卸载
[[email protected] ~]# df
[[email protected] ~]# umount /mnt
<2>退出ip为172.25.254.128的主机的共享存储设备的登陆
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 172.25.254.128 -u
<3>进行永久删除存储共享设备
[[email protected] ~]# iscsiadm -m node -T iqn.2019-02.com.westos:storage1 172.25.254.128 -o delete
<4>查看系统可以识别的设备,发现没有之前创建的共享存储设备
[[email protected] ~]# fdisk -l
<5>利用tree命令查看/var/lib/iscsi/文件,发现其中没有之前创建的共享存储设备,说明已经永久删除(再次重启服务后,也没有,因为文件中已经没有共享存储设备)
[[email protected] ~]# tree /var/lib/iscsi/
总结:
1.fatab中的内容比网络**的设备优先,所以如果设置不当,直接写的话系统第一次可能起不来,需要手动将其关闭,必须将网络设备自动**
2._netdev代表先**网络服务,再挂载设备
3.如果在使用一个服务的时候,发现它起不来,说明selinux在限制它所使用的端口,