CC00027.LBCHAC——|块存储之ISCSI.V2|——|2台server|...

一、ISCSI构建
### --- 实验环境规划

~~~     HA-server1:10.10.10.11:ISCSI服务器端:2块磁盘,另外一块作为共享磁盘
~~~     HA-server2:10.10.10.12:ISCSI客户机端
二、实验构建.临时配置
1、LVM的整合
### --- LVM的整合:是多余的操作,在生产环境中,
~~~     是通过硬raid把多块磁盘整合在一起的,所以在装完操作系统之后,
~~~     分了一个单独的空间叫做LVM或者ISCSI,ISCSI这个/根下的这个目录分了90GB的存储资源,
~~~     拿这个空间去做ISCSI的共共享存储
### --- 对于ISCSI设备来说:它可以使用的是一个:已格式化的分区   单独块 目录  都是可以的,
### --- 共享是多样的。只要是能提供存储能力的,都是可以作为共享设备来使用。

[root@server11 ~]# fdisk -l
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
[root@server11 ~]# pvcreate /dev/sdb                                        // 创建逻辑卷/dev/sdb
  Physical volume "/dev/sdb" successfully created   

[root@server11 ~]# vgcreate vg0 /dev/sdb                                    // 创建卷组,名称为vg0
  Volume group "vg0" successfully created 

[root@server11 ~]# lvcreate -L 5G -n lv0 vg0                                // 创建逻辑卷:-L 5G:空间为5G,-n lv0:名称为lv0 vg0:从vg0里创建
  Logical volume "lv0" created.

[root@server11 ~]# mkfs.ext4 /dev/vg0/lv0                                   // 该命令等同于mkfs -t ext4 /dev/vg0/lv0 //对创建的逻辑卷进行格式化

[root@server11 ~]# fdisk -l
Disk /dev/mapper/vg0-lv0: 5368 MB, 5368709120 bytes
2、在target端创建LQN标签:在HA-server1:10.10.10.11服务器端安装ISCSI的服务器端软件
### --- 安装服务器端软件scsi-target

[root@server11 ~]# yum install -y scsi-target-utils                         // 安装包,创建ISCSI对象
[root@server11 ~]# service tgtd start                                       // 开启服务 tgtd:ISCSI服务的服务器端名称
 Starting SCSI target daemon:                               [  OK  ]    
[root@server11 ~]# netstat -anpt |grep tgtd                                 // 查看服务是否开启
tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      2312/tgtd           
tcp        0      0 :::3260                     :::*                        LISTEN      2312/tgtd
### --- 创建对应的LQN标签
 
[root@server11 ~]# tgtadm -L iscsi -o show -m target                        // 查看target创建的信息;什么信息都没有输出                                                          
[root@server11 ~]# date
Sun Jan 24 07:20:59 CST 2021
[root@server11 ~]# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2021-01.com.ityanqi.www.roc         //创建对应的LQN标签: 
~~~     tgtadm -L (制定驱动类型) iscsi -o(制定操作类型)new -m(制定管理的对象) target -t(制定当前存储资源ID号)1(这个ID号可以从6开始,也可以从8开始,也可以从1开始,随机的,只要不冲突即可) -T (制定iqn标签,命名规则:iqn创建年-月.域名反写:自定义)iqn.2016-2.com.xdl.www.lvm
~~~     LUN:逻辑单元;去划分存储能力的,如果有多个逻辑存储单元,它上面会打一个标签,该标签就是LQN标签,这是对于服务器来说的。
~~~     对于客户端来:它需要去访问LQN标签的方式去确定它的存储设备有那几个。LQN标签命名规则:制定iqn标签,命名规则:iqn创建年-月.域名反写:自定义)iqn.2016-2.com.xdl.www.lvm
[root@server11 ~]# tgtadm -L iscsi -o show -m target                       // 查看target创建的信息;创建的LQN标签
Target 1: iqn.2021-01.com.ityanqi.www.roc
    System information:                                                     // 系统属性
        Driver: iscsi                                                       // 驱动iscsi
        State: ready                                                        // 状态:准备了,已就绪
    I_T nexus information:
    LUN information:
        LUN: 0                                                              // 划分存储单元的,存储能力的
            Type: controller                                                // 类型
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1                                       // 结果size是0MB,原因是:该是存储控制类型,专门是做控制的,而不是做真正存储能力的。
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
    Account information:
    ACL information:
3、绑定IQN标签到存储设备
[root@server11 ~]# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b  /dev/vg0/lv0     //tgtadm -L iscsi指定类型为iscsi类型  -o new:-o指定是一个new操作 -m logicalunit:-m指定是一个logicalunit逻辑存储单元 -t 1:-t指定要把这个存储单元绑定到哪一个LQN标签上,标签是1 -l:-L指的是logicalunit也就是LUN的ID号1, -b:指定的是存储设备/dev/vg0/lv0:逻辑卷
~~~     tgtadm -L (指定驱动类型)iscsi -o new -m (管理的对象)logicalunit -t (tat标签)1 -l(逻辑存储单元的标签)1-b(设备名称) /dev/vg0/lv0
[root@server11 ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2021-01.com.ityanqi.www.roc
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1                                                              // 这里多了一个LUN:1
            Type: disk                                                      // 类型为disk,磁盘类型
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 5369 MB, Block size: 512                                  // 空间大小为5G左右,之前共享的lv0空间大小
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr                                        // 操作类型,可读可写可执行
            Backing store path: /dev/vg0/lv0                                // 给LUN提供存储能力的设备:/dev/vg0/lv0
            Backing store flags: 
    Account information:                                                    // 访问控制列表:指定用户              //在这两行什么都不操作,对所有的客户端或者网段都是运行去使用该存储设备的,只要它知道这个存储的名称即可。是不太安全的
    ACL information:                                                        // 控制列表:指定IP或者是网段,也是访问控制列表      //这两行设定是空的,什么都没有设定
[root@server11 ~]# tgtadm -L iscsi -o bind -m target -t 1 -I 10.10.10.12    // tgtadm -L iscsi -o bind:-o动作类型为bind绑定 -m target:-m绑定的是target端 -t 1:-t绑定target的ID号 -I 10.10.10.12   :-I指定IP地址绑定给谁去使用
[root@server11 ~]# tgtadm -L iscsi -o show -m target
    Account information:
    ACL information:
        10.10.10.12                                                         // 控制列表发现多了10.10.10.12这台服务器,那么10.10.10.12就可以使用了
4、客户端配置:HA-server2:10.10.10.12
### --- 安装iscsi-initiator-utils

[root@server12 ~]# yum install -y iscsi-initiator-utils
### --- 发现块设备,并登录到该块设备,并为该块设备挂载目录,创建文件系统,并写入数据
 
[root@server12 ~]# iscsiadm -m discovery -t st -p 10.10.10.11               // iscsiadm -m discovery:发现探索一下 -t st:-t指定操作类型为st扫描类型 -p(指定需要扫描的服务器IP地址)10.10.10.12
Starting iscsid:                                           [  OK  ]
10.10.10.11:3260,1 iqn.2021-01.com.ityanqi.www.roc                          // 扫描出一个LQN标签,端口是3260,1是ID号,IQN标签:iqn.2021-01.com.ityanqi.www.roc

[root@server12 ~]#  iscsiadm -m node -T iqn.2021-01.com.ityanqi.www.roc  --login                      //--login表示登录操作,-m:node节点,-T指定iqn标签
Logging in to [iface: default, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260] (multiple)
Login to [iface: default, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260] successful.        //出现了successful表示
[root@server12 ~]# fdisk -l
Disk /dev/sdc: 5368 MB, 5368709120 bytes                                    // 该服务器下多了一个块存储,且大小刚好是5个GB,在11设备这个人块是5369,而在这边是5368,它是需要创建存储块的目录,占用了1MB
[root@server12 ~]# fdisk /dev/sdc                                           // 为这个块设备分区
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1): 
Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018): 
Command (m for help): w
[root@server12 ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1018     5238597   83  Linux 
 
[root@server12 ~]# mkfs.ext4 /dev/sdc1 
[root@server12 ~]# mkdir /iscsi
[root@server12 ~]# mount -t ext4 /dev/sdc1 /iscsi/
[root@server12 ~]# cd /iscsi/
 
[root@server12 iscsi]# ls
lost+found                                                                  // lost+found是典型的块设备去缓存的目录
[root@server12 iscsi]# touch 1
[root@server12 iscsi]# vim 1
[root@server12 iscsi]# cat 1
this is HA-server2:10.10.10.12 iscsi-client
### --- 移除登录的块设备,并退出登录(卸载)流程
[root@server12 ~]# umount /iscsi/                                           // 解除挂载,
[root@server12 ~]#  iscsiadm -m node -T iqn.2021-01.com.ityanqi.www.roc   --logout
Logging out of session [sid: 1, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260]
Logout of [sid: 1, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260] successful.           //登出successful
[root@server12 ~]# fdisk -l                                                 // 发现/dev/sdc1这块盘已经没有了

### --- 重启一下HA-server1节点
[root@server11 ~]# service tgtd start
[root@server11 ~]# tgtadm -L iscsi -o show -m target                        // 重启后show的情况下为空,之前没有创建IQN标签的时候show的时候就是空的。重启之后消失,说明之前的操作都是非持久化的过程
三、持久化配置
1、HA-server1下:10.10.10.11:ISCSI服务端-永久生效-配置文件修改方式
### --- 重点:Linux/Unix中需要持久化设置,只有在文件中保存才能确保设置持久化,但是之前的操作都是基于命令行的,不会被保存在配置文件中的。所以之前的操作都是临时的。
### --- 查看新加的磁盘

[root@server11 ~]# fdisk -l 
Disk /dev/sdb: 107.4 GB, 107374182400 bytes                                 // 第二种方案,该块不做lvm整合,直接把这个块共享出去
### --- 安装服务器端软件scsi-target

[root@server11 ~]# yum install -y scsi-target-utils                         // 安装包,创建ISCSI对象
### --- 修改ISCSI服务的配置文件                                              // 配置文件修改方式-永久生效(生产环境使用)

[root@server11 ~]# ls /etc/tgt/targets.conf                                 // 该文件就是ISCSI服务的配置文件
<target iqn.2021-01.com.ityanqi.www.sdb>                                    // 配置共享磁盘 //iqn标签       //iqn号命名遵循qin命名规则
    <backing-store /dev/sdb>                                                // 配置发行商(任意)//提供的设备/dev/sdb直接把块提供给它
        vendor_id ityanqi                                                   // 发行商,ityanqi:描述信息,没有太多的含义
        lun 6                                                               // 配置LUN号 //lun是指定lun的ID号,可以不从1开始,可以自定义去写
    </backing-store>                                
    incominguser iscsiuser iscsiuser                                        // 配置认证的用户名和密码//提供认证的用户名及密码,自己可以定义,用户名和密码都是iscsiuser。更安全了
    initiator-address 10.10.10.0/24                                         // 配置允许的网段//放行的一个网段
</target>
### --- 启动ISCSI服务的启动程序tgtd并设置开机自启,并查看配置是否生效

[root@server11 ~]# vim /etc/tgt/targets.conf 
[root@server11 ~]#  service tgtd start
Starting SCSI target daemon:                               [  OK  ]
[root@server11 ~]# chkconfig tgtd on
[root@server11 ~]# tgtadm -L iscsi -o show -m target
Target 1: iqn.2021-01.com.ityanqi.www.sdb                                   // iqn标签号为1,配置正确,自己定义的
    System information:
        Driver: iscsi                                                       // iscsi类型
        State: ready                                                        // 状态为准备就绪
    I_T nexus information:
    LUN information:
        LUN: 0                                                              // LUN 0控制端
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 6                                                              // LUN 6
            Type: disk                                                      // disk类型
            SCSI ID: IET     00010006
            SCSI SN: beaf16
            Size: 107374 MB, Block size: 512                                // size大小是100GB
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
            Backing store flags: 
    Account information:
        iscsiuser                                                           // 用户名是iscsiuser和密码也是iscsiuser只是密码没有显示出来
    ACL information:
        10.10.10.0/24                                                       // 允许访问的网段是10.10.10.0/24    //也就意味着这里是CIDR的表达方式
~~~     不管怎么重启,这里都不会失效,已经达到了持久化配置的设定。建议生产环境中这样配置。
2、HA-server2下:10.10.10.12:ISCSI客户端-永久生效-配置文件修改方式
### --- 安装iscsi-initiator-utils

[root@server12 ~]# yum install -y iscsi-initiator-utils
### --- 修改配置文件,和临时配置不一致的是多了一个身份认证需要键入用户名和密码
 
[root@server12 ~]#  vim /etc/iscsi/iscsid.conf 
node.session.auth.username = iscsiuser                                      // 连接服务端的用户名
node.session.auth.password = iscsiuser                                      // 连接服务端的密码
### --- 发现块设备,并登录到该块设备,并为该块设备挂载目录,创建文件系统,并写入数据

[root@server12 ~]# iscsiadm -m discovery -t st -p 10.10.10.11
10.10.10.11:3260,1 iqn.2021-01.com.ityanqi.www.sdb
 
[root@server12 ~]# iscsiadm -m node -T iqn.2021-01.com.ityanqi.www.sdb  --login
Logging in to [iface: default, target: iqn.2021-01.com.ityanqi.www.sdb, portal: 10.10.10.11,3260] (multiple)
Login to [iface: default, target: iqn.2021-01.com.ityanqi.www.sdb, portal: 10.10.10.11,3260] successful.
[root@server12 ~]# fdisk -l
Disk /dev/sdc: 107.4 GB, 107374182400 bytes                                 // 是100GB服务器端直接提供的是100GB块

[root@server12 ~]# fdisk /dev/sdc 
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): 
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): 
Command (m for help): w
[root@server12 ~]# mkfs.ext4 /dev/sdc1
[root@server12 ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       13054   104856223+  83  Linux

[root@server12 ~]# mkdir /iscsi                                             // 这一步临时方案已经做过,省略
[root@server12 ~]# mount -t ext4 /dev/sdc1 /iscsi/                          // 这一步临时方案已经做过,省略
[root@server12 ~]# !mount                                                   // 执行之前的mount执行操作
mount -t ext4 /dev/sdc1 /iscsi/
[root@server12 ~]# ls /iscsi/                                       
lost+found                                                                  // 缓存文件已生效

[root@server12 ~]# vim /iscsi/1
 this is HA-server2:10.10.10.12  chijiuhuabushu
[root@server12 ~]# cat /iscsi/1
### --- 移除登录的块设备,并退出登录(卸载)流程

[root@server12 ~]# umount /iscsi/                                           // 解除挂载,

[root@server12 ~]#  iscsiadm -m node -T iqn.2021-01.com.ityanqi.www.roc   --logout
Logging out of session [sid: 1, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260]
Logout of [sid: 1, target: iqn.2021-01.com.ityanqi.www.roc, portal: 10.10.10.11,3260] successful.           //登出successful
[root@server12 ~]# fdisk -l                                                 // 发现/dev/sdc1这块盘已经没有了
四、重点:
### --- 问题:
~~~     我们已经有文件存储了,块存储的意义何在?

### --- 解决方案:
~~~     对于有些数据库来说,若是你想使用我,我存储必须是一个单独的块,文件共享可以吗,不可以;
~~~     块存储之间传输的ISCSI指令,而不是文件本身,它的效率会更高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值