0
点赞
收藏
分享

微信扫一扫

Linux中的 mount -a

佳简诚锄 04-12 16:30 阅读 1

1.什么是iscsi

1.1 scsi

SCSI是一种I/O技术,规范了一种并行的I/O总线和相关协议(scsi协议)。

       SCSI总线通过SCSI控制器(target)来和硬盘之类的设备(scsi设备)进行通信,访问的客户端应用称为Initiator。窄SCSI总线最多允许8个、宽SCSI总线最多允许16个不同的SCSI设备和它进行连接,每个SCSI设备都必须有自己唯一的SCSI ID(设备的地址)。

       LUN(Logical Unit Number,逻辑单元号):每个SCSI ID上最多有32个LUN,一个LUN对应一个逻辑设备。

1.2 iscsi

iSCSI是实现IP-SAN的一种技术,利用TCP/IP协议和scsi协议,让客户端计算机可以通过局域网把scsi服务器端映射为本地的储存空间(磁盘)。

1.3 iscsi与nfs的区别

iscsi本质上是用于块存储的,nfs本质上则是用于文件存储的,所以iscsi服务器映射到本机上的存储空间更接近于磁盘,而nfs服务器映射到本机的更接近于共享目录

2.iscsi服务器端配置

服务器与客户端都是centos7环境

2.1条件准备

(1)关闭防火墙

(2)关闭selinux

(3)配置静态ip

2.2服务器端安装iscsi管理工具scsi-target-utils

yum install -y epel-release 
yum install -y scsi-target-utils

2.3创建LUN

使用fdisk命令创建新分区作为LUN(不需要格式化、挂载)

我是新添加了一块200G的磁盘,并划分了2个50G的分区/dev/sdb1、/dev/sdb2

2.4开启tgtd服务并将其设为开机自启

systemctl start tgtd
systemctl enable tgtd

2.5创建target

target就是scsi控制器,需要设置唯一的scsi id、绑定局域网子网ip、创建LUN(LUN也有id)

tgtadm --lld iscsi -o new -m target -t 1 -T target1
#将target的scsi id设为1,名称设为target1

tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.0.0/24
#将target1绑定子网ip

tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sdb1
tgtadm -L iscsi -o new -m logicalunit -t 1 -l 2 -b /dev/sdb2
#将之前创建的分区作为LUN,并给它们分配id:1、2,注意不能从0开始分配,因为target1本身占据了0id
#-t后接target的iscsi id,-l后接LUN id

tgtadm -L iscsi -o show -m target
#配置完成后,通过此命令查看计算机的target

配置完成后的target如下图:

2.6配置iscsi服务用户

tgtadm --lld iscsi --op new --mode account --user iscsiuser1 --password 123456
#创建的账户名为iscsiuser1,密码为123456

tgtadm --lld iscsi --op bind --mode account --tid 1 --user iscsiuser1
#为用户iscsiuser1授予访问ID为1的target的权限

tgtadm --lld iscsi --op show --mode account
#创建完成后查看iscsi用户信息

*2.7在配置文件中配置服务

上述所做的所有配置都只是在内存中生效,如果重启服务,配置就会失效。

若要实现重启服务配置不失效,就要修改配置文件/etc/tgt//targets.conf,在其中键入以下内容:

<target target1> #配置target名称

            <backing-store /dev/sdb1> #配置共享磁盘

                lun 1 #配置LUN号

            </backing-store>

            <backing-store /dev/sdb2> #配置共享磁盘

                lun 2 #配置LUN号

            </backing-store>

            incominguser iscsiuser1 123456 #配置认证的用户名和密码

            initiator-address 192.168.0.0/24 #配置允许的网段

</target>

3.iscsi客户端配置

3.1安装iscsi客户端管理工具

yum install -y iscsi-initiator-utils

3.2配置客户端名称

打开文件/etc/iscsi/initiatorname.iscsi

在其中键入:

InitiatorName=target1
#指定target
InitiatorAlias=node1
#设置客户端名称为node1

3.3在配置文件中添加target访问用户

打开/etc/iscsi/iscsid.conf

(1)取消node.session.auth.authmethod = CHAP的注释

(2)找到node.session.auth.username =,并取消注释,将其后的用户名改为iscsiuser1

(3)找到node.session.auth.password =,并取消注释,将其后的用户密码改为123456

3.4开启iscsid以及iscsi服务

systemctl start iscsid
systemctl start iscsi

3.5发现target,并登录

(1)发现target

iscsiadm -m discovery -t st -p 192.168.0.54
#发现服务器上的LUN,除了结尾的服务器ip,其他都是固定的

成功后结果如下

(2)通过iscsi用户登录

iscsiadm -m node -T target1 -p 192.168.0.54:3260 -l
#除了target名称和服务器ip,其他都是固定的

登录成功后,可以看到客户端多了两个50G的磁盘

之后便可以对这2块磁盘进行格式化与挂载了

在没有集群功能的情况下,不可以用多台客户端挂载同一个LUN,虽然LUN在未存放数据的情况下可以被多台客户端同时挂载,但那样可能会造成数据混乱;如果LUN内已经写有数据,那么同时挂载会直接出错

3.6客户端删除target

首先卸载客户端的iscsi磁盘挂载,然后再按以下命令删除客户端的target信息

iscsiadm -m node -T target1 -p 192.168.0.54:3260 -u
#客户端登出
iscsiadm -m node -T target1 -p 192.168.0.54:3260 -o delete
#删除发现的target
rm -rf /var/lib/iscsi/send_targets/192.168.0.54*
#删除残留的目录
举报

相关推荐

0 条评论