文档中心 > Linux云主机挂载iSCSI共享卷
Linux云主机挂载iSCSI共享卷

最近更新时间:2023-11-28

本文示例适用于CentOS 6.X/CentOS 7.X/Ubuntu等操作系统。本文中云主机操作系统主要以CentOS 7.6为例,并对不同操作系统之间的差异进行说明。


1. 挂载iSCSI共享卷至云主机

  1. 登录紫光云控制台。

  2. 在左侧导航栏中依次选择“产品与服务 > 存储 > 云硬盘”。

  3. 在云硬盘列表页面,单击待挂载iSCSI共享卷后操作列的“挂载”。


  4. 在挂载弹窗中,单击待挂载云主机实例后的“挂载”。

  5. 挂载完成后,在云硬盘列表页面单击硬盘ID,跳转到硬盘详情页面。

    可以在“挂载信息”中看到iSCSI共享卷的“存储网段”、“控制器地址”,以及所挂载实例的网卡地址、网卡掩码、网卡网关等信息。


2. 登录云主机进行操作

  1. 远程连接并登录到挂载的Linux云主机

  2. 在操作页面输入ip addr命令,可以看到主机新增了一块网卡。

    本示例中,新增网卡名称为eth1,请您根据实际的信息做相应替换,后文不再提示。

  3. (可选)如果是裸金属实例,需要先进入如下配置。

    1. 定位当前使用的网卡,先使用ip addr命令查看当前网卡。

      本示例中所使用的ens1f1为此步骤中的网卡名称,请您根据实际的信息做相应替换,后文不再提示。


    2. 然后执行批量启动命令,示例如下:

      for i in `ip a |grep -E 'ens[0-9]*|eth[0-9]'| grep -v "state UP" | awk -F: '{print $2}'`;do ip link set dev $i up;done

      然后再次执行ip addr命令,与第一次ip addr命令得到的结果做对比,可知up起来的网卡为所需要定位的网卡。


    3. 接下来为此网卡配置IP地址、子网掩码和网关。

      本示例中所使用的<10.0.11.26>段为上一步骤中的“网卡地址”,<255.255.255.0>为上一步骤中的“网卡掩码”,<10.0.11.1>为上一步骤中的“网卡网关”,< 10.0.44.128 25 >为上一步骤中的“存储网段”,请您根据实际的信息做相应替换,后文不再提示。

      对于不同的操作系统,使用的命令有所差异,具体如下:

      • CentOS:

        增加/etc/sysconfig/network-scripts/route-ens1f1文件。

        [root@i-9Ugzds6NaA ~]# cat /etc/sysconfig/network-scripts/route-ens1f1

        IPADDR=10.0.11.26

        NETMASK=255.255.255.0

        GATEWAY=10.0.11.1

        # 配置持久化的静态路由规则,使得重启network或系统后,配置仍然保留,如果重装系统,需要重新配置该路由规则。

        10.0.44.128/25 via 10.0.11.1 dev ens1f1

      • Ubuntu:

        修改/etc/network/interfaces 配置文件,修改新加入的存储网卡(如示例中的eth1)相关的内容,增加静态路由配置,如果重装系统,需要重新配置该路由规则。

        # 修改后:

        auto eth1

        iface eth1 inet static

          #hwaddr ea:16:3e:82:32:9d

          address 10.0.11.26

          netmask 255.255.255.0

          dns-nameservers 114.114.114.114

          up ip route add 10.0.44.128/25 via 10.0.11.1      // 增加内容

        在主机内增加静态路由规则,如果重装系统,需要重新配置该路由规则。

        [root@i-9Ugzds6NaA ~]# ip route add 10.0.44.128/25 via 10.0.11.1

        配置文件保存后,对所使用的存储网卡做down/up操作,使配置生效。

        [root@i-9Ugzds6NaA ~]# cd /etc/sysconfig/network-scripts/
        [root@i-9Ugzds6NaA network-scripts]# ifdown ifcfg-ens1f1
        [root@i-9Ugzds6NaA network-scripts]# ifup ifcfg-ens1f1

  4. 安装访问iSCSI共享卷所需要的应用程序。

    • CentOS:

      yum install iscsi-initiator-utils device-mapper-multipath -y

    • Ubuntu:

      apt-get update
      apt-get install multipath-tools -y
      apt-get install open-iscsi -y

  5. 更新/etc/iscsi/initiatorname.iscsi文件,使其和存储后端配置一致。该文件内容格式为:

    InitiatorName=iqn.2020-07.com.unicloud.iscsi:{InstanceId}

    其中的“InstanceID”为主机实例ID,此ID可以在弹性云主机控制台查看,请您根据实际的信息做相应替换,后文不再提示。


    本示例中所更新的配置如下:

    [root@i-9Ugzds6NaA ~]# cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2020-07.com.unicloud.iscsi:ecs-j6piczqdf2bl

  6. 更新/etc/iscsi/iscsid.conf配置文件,取消以下auth配置的注释,并修改其中的username和password(其中 “CHAP用户名”和“CHAP密码” 为用户控制台上共享卷详情页面挂载信息中的实例对应的CHAP信息),其他CHAP设置保持为注释状态。

    node.session.auth.authmethod = CHAP

    node.session.auth.username = <CHAP用户名>
    node.session.auth.password = <CHAP密码>
    discovery.sendtargets.auth.authmethod = CHAP
    discovery.sendtargets.auth.username = <CHAP用户名>
    discovery.sendtargets.auth.password = <CHAP密码>

    检查/etc/iscsi/iscsid.conf以下参数,部分系统默认值为“maual”,建议修改该配置为 "automatic",使得node节点重启后可以自动登录。

    node.startup = automatic

  7. 配置multipath,Ubuntu操作系统不需要此步骤,可以跳过。

    • CentOS:添加/etc/multipath.conf文件

      defaults {

        polling_interval 10
        max_fds 8192
        user_friendly_names no
      }
      devices {
        device {
            vendor "3PARdata"
            product "VV"
            path_grouping_policy "group_by_prio"
            path_selector "round-robin 0"
            path_checker tur
            features "0"
            hardware_handler "1 alua"
            prio "alua"
            failback immediate
            rr_weight "uniform"
            no_path_retry 18
            rr_min_io_rq 1
            detect_prio yes
            fast_io_fail_tmo 10
            dev_loss_tmo "infinity"
        }
      }
      blacklist {

      }

  8. 启动服务。

    • CentOS6:

      chkconfig iscsi on

      service iscsi start
      chkconfig iscsid on
      service iscsid start
      chkconfig multipathd on

      service multipathd start

    • CentOS7:

      systemctl enable iscsid multipathd

      systemctl start iscsid multipathd

    • Ubuntu:

      service iscsi start
      service iscsid start

      service multipath-tools start

  9. 发现iscsi Target,此步骤中使用的<10.0.44.130>和<10.0.44.131>为步骤5中的“控制器地址”,请您根据实际的信息做相应替换,后文不再提示。

    [root@i-9Ugzds6NaA ~]# iscsiadm --mode discovery --type st --portal 10.0.44.130
    10.0.44.130:3260,122 iqn.2000-05.com.3pardata:21220002ac022fc7
    [root@i-9Ugzds6NaA ~]# iscsiadm --mode discovery --type st --portal 10.0.44.131
    10.0.44.131:3260,22 iqn.2000-05.com.3pardata:20220002ac022fc7

  10. 登录节点。

    [root@i-9Ugzds6NaA ~]# iscsiadm -m node -l
    Logging in to [iface: default, target: iqn.2000-05.com.3pardata:21220002ac022fc7, portal: 10.0.44.130,3260] (multiple)
    Logging in to [iface: default, target: iqn.2000-05.com.3pardata:20220002ac022fc7, portal: 10.0.44.131,3260] (multiple)
    Login to [iface: default, target: iqn.2000-05.com.3pardata:21220002ac022fc7, portal: 10.0.44.130,3260] successful.
    Login to [iface: default, target: iqn.2000-05.com.3pardata:20220002ac022fc7, portal: 10.0.44.131,3260] successful.

  11. 验证iSCSI共享卷,可以看到iSCSI共享卷已经连接到多路径设备 /dev/mapper/360002ac0000000000000156d00022fc7。若您已挂载多块共享卷,则此处应该可以看到所有已挂载的共享卷。

    [root@i-9Ugzds6NaA ~]# lsblk
    NAME                               MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda                                   8:0   0   20G 0 disk
    └─360002ac0000000000000156d00022fc7 252:0   0   20G 0 mpath
    sdb                                   8:16   0   20G 0 disk
    └─360002ac0000000000000156d00022fc7 252:0   0   20G 0 mpath
    sr0                                 11:0   1 384K 0 rom
    vda                                 253:0   0   40G 0 disk
    └─vda1                             253:1   0   40G 0 part /
    [root@i-9Ugzds6NaA ~]# ll /dev/mapper/360002ac0000000000000156d00022fc7
    lrwxrwxrwx 1 root root 7 Sep 8 15:23 /dev/mapper/360002ac0000000000000156d00022fc7 -> ../dm-0
    [root@i-9Ugzds6NaA ~]# multipath -ll
    360002ac0000000000000156d00022fc7 dm-0 3PARdata,VV
    size=20G features='1 queue_if_no_path' hwhandler='1 alua' wp=rw
    `-+- policy='round-robin 0' prio=50 status=active
    |- 17:0:0:0 sdb 8:16 active ready running
    `- 18:0:0:0 sda 8:0 active ready running

  12. 格式化multipath多路径设备,可以实现对iSCSI共享卷的使用。如下为展示将iSCSI共享卷格式化为ext4文件系统(非共享文件系统)的操作。

    mkfs.ext4 /dev/mapper/360002ac0000000000000156d00022fc7

    mount /dev/mapper/360002ac0000000000000156d00022fc7 /mnt

  13. 如果需要配置多路径设备开机后自动挂载到指定目录,需要将挂载信息添加到 /etc/fstab 文件。另外,由于 iSCSI 协议是基于 TCP/IP 网络传输数据,因此注意添加 _netdev 参数,等待系统网络准备就绪后挂载。

    将以下内容追加到 /etc/fstab 文件末尾,注意根据实际环境,更新多路径设备、挂载点、文件系统等。

    /dev/mapper/360002ac0000000000000154400022fc7/mnt ext4 defaults,_netdev 0 0