Linux ISCSI网络磁盘,异地共享磁盘

一、ISCSI的基础知识

       • Internet SCSI,网际SCSI接口  默认端口  3260
          – 一种基于C/S架构的虚拟磁盘技术
          – 服务器提供磁盘空间,客户机连接并当成本地磁盘使用

       • backstore,后端存储
          – 对应到服务端提供实际存储空间的设备,需要起一个管理名称

       • target,磁盘组
          – 是客户端的访问目标,作为一个框架,由多个lun组成

        • lun,逻辑单元
          – 每一个lun需要关联到某一个后端存储设备,在客户端会视为一块虚拟硬盘

        • ISCSI Qualified Name 名称规范(iqn)
           – iqn.yyyy-mm.倒序域名:自定义标识
           –  用来识别 target 磁盘组,也用来识别客户机身份

    如图,backstore,target,lun的关系如下,客户端的访问点是target,target下有数个lun,可以看做对应backstore的接口,lun与backstore的区别在于lun是虚拟的(相当于关联设备),而backstore是实际存储空间的设备.

 

            

二、待做的事 

    1.服务端

          1)安装相关软件

          2)创建好backstore存储空间

          3)创建好target,以供客户端访问

          4)在target下创建lun用来关联实际存储空间backstore

    2.客户端

          1) 安装相关软件

          2) 访问target,从而远程使用共享磁盘,

三、运行环境

     两台虚拟机 : server 172.25.0.11

                          desktop 172.25.0.10

     server作为服务器,desktop作为客户端

四、服务器配置

    1.修改防火墙默认配置

        firewall-cmd --set-default-zone=trusted

    2.划分一个分区

         这个分区是位backstore准备的,作为数据的存储点,做位lun的访问点.

         具体的磁盘以本机环境位主.我在server上配置了一个10G的虚拟磁盘.我打算划分一个5G的主分区作为backstore

         1)划分区

            fdisk /dev/vdb

         2)查看分区

             lsblk

               NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
               vda    253:0    0  10G  0 disk 
                 └─vda1 253:1    0  10G  0 part /
               vdb    253:16   0  10G  0 disk 
                 └─vdb1 253:17   0   5G  0 part

             我在vdb下划分了一个vdb1,5G的大小     

      3.安装软件

             安装软件包targetcli
             yum -y install tragetcli

      4.打开targetcli

              输入命令  : targetcli

      5. 进入到targetcli

               输入命令:ls 

                o- / ..................................................................... [...]
                o- backstores .......................................................... [...]
                | o- block .............................................. [Storage Objects: 0]
                | o- fileio ............................................. [Storage Objects: 0]
                | o- pscsi .............................................. [Storage Objects: 0]
                | o- ramdisk ............................................ [Storage Objects: 0]
                  o- iscsi ........................................................ [Targets: 0]
                 o- loopback ..................................................... [Targets: 0]
        默认是什么都没有的

               1) 创建backstore

                    这里有四种存储类型,我们选择创建block 

                    命令: backstores/存储类型 create name=[名称] dev=[分区]

                    输入命令 : backstores/block create name=blk dev=/dev/vdb1   

               2) 创建target磁盘组 

                     命令:  iscsi/ create  iqn.yyyy-mm.倒序域名:自定义标识

                    输入命令:   iscsi/ create  iqn.2019-07.com.example:server           

                   target又可以细分为TPG(Target Portal Group)

                  TPG目标门户组,某个特定iSCSI目标要侦听的接口IP地址和TCP端口的集合。可以将目标配置添加到TPG以协调多个LUN的设置。

  

               3) 进行lun关联

                    命令 : [lun路径]     create  [被关联的backstore的路径] 

                    输入命令:  iscsi/iqn.2019-07.com.example:server/tpg1/luns      create /backstores/block/blk

                    注意lun路径跟和backstore的路径与你之前创建的backstore和target相关

               4) 设置访问控制:acls

                    客户端声称的名字,符合iqn名称规范.客户端若是想要访问到这个服务器的iscsi,其申明的名字在服务器端必须存在,也就是说服务器一开始就设置了允许访问的名字.而客户端就必须根据这些名字进行访问

                   命令 : [acls路径] create [被申明的名字]

                   输入命令:iscsi/iqn.2019-07.com.example:server/tpg1/acls create iqn.2019-07.com.example:desktop

                5)设置监听的IP地址:portals

                    命令 : [protals路径] create ip_address=[本机ip]

                    输入命令:iscsi/iqn.2019-07.com.example:server/tpg1/portals  create ip_address=172.25.0.11 

                6) 退出targetcli

                  ls一下看看完成创建后的结果,一定要确保按照顺序创建.

                  输入exit退出,一定要不要ctrl+c退出,否则无法报错                 

                        o- / ..................................................................... [...]
                        o- backstores .......................................................... [...]
                       | o- block .............................................. [Storage Objects: 1]
                       | | o- blk ......................... [/dev/vdb1 (5.0GiB) write-thru activated]
                       | o- fileio ............................................. [Storage Objects: 0]
                       | o- pscsi .............................................. [Storage Objects: 0]
                       | o- ramdisk ............................................ [Storage Objects: 0]
                       o- iscsi ........................................................ [Targets: 1]
                       | o- iqn.2019-07.com.example:server ................................ [TPGs: 1]
                       |   o- tpg1 ........................................... [no-gen-acls, no-auth]
                       |     o- acls ...................................................... [ACLs: 1]
                       |     | o- iqn.2019-07.com.example:desktop .................. [Mapped LUNs: 1]
                       |     |   o- mapped_lun0 ............................... [lun0 block/blk (rw)]
                       |     o- luns ...................................................... [LUNs: 1]
                       |     | o- lun0 ...................................... [block/blk (/dev/vdb1)]
                       |     o- portals ................................................ [Portals: 1]
                       |       o- 172.25.0.11:3260 ............................................. [OK]
                       o- loopback ..................................................... [Targets: 0]

        6.重启服务

             [root@server0 ~]# systemctl restart target
             [root@server0 ~]# systemctl enable target  #设置为开机自启
             ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'

         

           服务器的配置就结束了

五、客户端配置

        1.安装软件:iscsi-initiator-utils和修改防火墙配置

                yum -y install iscsi-initiator-utils

                firewall-cmd --set-default-zone=trusted

        2.设置客户端的访问名称      

            必须与服务器提前申明的名称相同

              vim /etc/iscsi/initiatorname.iscsi
              -->InitiatorName=iqn.2019-07.com.example:desktop    

         3.客户端刷新声称名字的服务

                 systemctl restart iscsid

              如果出现报错,出现以下信息:

              Warning: Unit file of iscsid.service changed on  
              disk, 'systemctl daemon-reload' recommended.

              输入命令: systemctl daemon-reload

                              systemctl restart httpd 

        4.发现共享存储

                  命令: iscsiadm --mode discoverydb --type sendtargets --portal [服务器ip] --discover

                  输入命令 iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover         

                 连接成功后显示如下信息:

                  [root@desktop0 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 172.25.0.11 --discover
                  172.25.0.11:3260,1 iqn.2019-07.com.example:server
       

         5.加载共享存储

                重启一下iscsi

                  systemctl restart iscsi

                  systemctl  enable iscsi

                   lsblk

                    [root@desktop0 ~]# lsblk
                   NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
                    sda      8:0    0   5G  0 disk 
                    vda    253:0    0  10G  0 disk 
                     └─vda1 253:1    0  10G  0 part /
                    vdb    253:16   0  10G  0 disk 

                 sda服务器共享的存储,到现在就完成服务器和客户端的配置了,下面是如何使用这个共享存储.

 六、使用共享存储

         1)将sda分区

            共享存储在/dev下

            fdisk /dev/sda

            NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
             sda      8:0    0   5G  0 disk 
               ├─sda1   8:1    0   1G  0 part 
               └─sda2   8:2    0   1G  0 part 
             vda    253:0    0  10G  0 disk 
               └─vda1 253:1    0  10G  0 part /
                vdb    253:16   0  10G  0 disk 

            我分了两个区,sda1,sda2

          2) 格式化 

                mkfs.ext4 /dev/sda1

          3) 挂载

                 mkdir /mnt/sda1

                 mount /dev/sda1 /mnt/sda1

   4)开机自动挂载

     vim /etc/fastb.

                 /dev/sda1       /mnt/sda1       xfs     defaults        0 0

           4) 创建文件

                touch abc.txt

                创建成功,代表可以使用             

七、注意事项

        1.保证服务器开启

              如果服务器关机了,客户端就无法使用这个共享存储了,再次使用这个共享分区会卡死

       

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值