Linux 搭建 iSCSI 服务端并挂载到 ESXI 上

最近在折腾 ESXi 但是硬盘又不够 所以只能挂载远程盘

给新硬盘分区

  • fdisk /dev/sdc
  • 输入 g 转换为 GPT 分区
  • 输入 n 一路回车 创建一个新分区
  • 输入 w 保存分区

创建 LVM 方便后续扩容

  • 转换成PV pvcreate /dev/sdc1
  • 查看 pv

    1
    2
    3
    4
    [root@2-5 ~]# pvscan 
    PV /dev/sda2 VG centos lvm2 [237.98 GiB / 0 free]
    PV /dev/sdc1 lvm2 [<2.73 TiB]
    Total: 2 [2.96 TiB] / in use: 1 [237.98 GiB] / in no VG: 1 [<2.73 TiB]
  • 创建 VG

    1
    2
    [root@2-5 ~]# vgcreate iscsi /dev/sdc1
    Volume group "iscsi" successfully created
  • 创建 LV

    1
    2
    [root@2-5 ~]# lvcreate -L 1T -n vmware iscsi
    Logical volume "vmware" created.
  • 查看 LV

    1
    2
    3
    4
    5
    [root@2-5 ~]# lvscan
    ACTIVE '/dev/centos/swap' [<23.85 GiB] inherit
    ACTIVE '/dev/centos/home' [<164.14 GiB] inherit
    ACTIVE '/dev/centos/root' [50.00 GiB] inherit
    ACTIVE '/dev/iscsi/vmware' [1.00 TiB] inherit

安装 iscsi 管理工具

  • 执行 yum -y install targetcli -y 安装 targetcli

配置 iSCSI

  • 执行 targetcli 进入管理界面

    1
    2
    3
    4
    5
    6
    [root@iscsi ~]# targetcli
    targetcli shell version 2.1.fb49
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.

    />
  • 查看默认的树状图 ls

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /> 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]
    />
  • 创建 block

    1
    2
    /> /backstores/block create iscsi /dev/iscsi/vmware 
    Created block storage object iscsi using /dev/iscsi/vmware.
  • 创建 iscsiiqn 格式为 iqn.yyyy-mm.域名反向:名称

    1
    2
    3
    4
    5
    /> /iscsi create iqn.2019-11.yumc.pw:vmware
    Created target iqn.2019-11.yumc.pw:vmware.
    Created TPG 1.
    Global pref auto_add_default_portal=true
    Created default portal listening on all IPs (0.0.0.0), port 3260.
  • 创建 iqnacls 用户 格式为 iqn.yyyy-mm.域名反向:名称

    1
    2
    /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/acls create iqn.2019-11.yumc.pw:vmware
    Created Node ACL for iqn.2019-11.yumc.pw:vmware
  • 绑定 blocklun

    1
    2
    3
    /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/luns create /backstores/block/iscsi 
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL iqn.2019-11.yumc.pw:vmware
  • 删除默认的端口绑定

    1
    2
    /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/portals delete 0.0.0.0 3260
    Deleted network portal 0.0.0.0:3260
  • 绑定到本地IP地址

    1
    2
    3
    /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/portals create 192.168.2.5 3260
    Using default IP port 3260
    Created network portal 192.168.2.5:3260.

客户端 挂载 iscsi

Windows 挂载 iscsi 硬盘

  • 打开 iSCSI 发起程序 (Win+R 输入 iscsicpl)
  • 选择 发现 标签页
  • 点击 发现门户
  • 输入 服务器地址 点击确定
  • 选择 目标 标签页
  • 会发现一个已发现目标
  • 选中之后点击连接 没啥意外应该会提示授权失败
  • 授权客户端

    • 选择 配置 标签页
    • 复制 发起程序名称 我这里是 iqn.1991-05.com.microsoft:desktop-6kqg5lg 你们自己看
    • 回到 iSCIS 服务端 执行 targetcli 继续进入交互界面
    • 执行命令 创建ACL
      1
      2
      3
      /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/acls create iqn.1991-05.com.microsoft:desktop-6kqg5lg
      Created Node ACL for iqn.1991-05.com.microsoft:desktop-6kqg5lg
      Created mapped LUN 0.
  • 回到客户端 再次链接 就可以成功了

  • 此电脑 > 右键 > 管理 > 磁盘管理 应该可以看到这块磁盘了

Esxi 挂载 iscsi 存储

  • 登录 ESXI
  • 新建 VMkernel 网卡 (不能用默认的 Management Network 端口组的网卡)
  • 网络 > VMkernel 网卡 > 添加 VMkernel 网卡
    • 新建端口组 填写 iscsi
    • 虚拟交换机 选择 默认的 vSwitch0
    • VLAN ID 默认 0
    • 配置服务器对应网段的IP
    • 点击创建
  • 配置软件 iSCSI
  • 存储 > 适配器 > 软件 iSCSI

    • iSCSI 已启用 选择 已启用
    • 新建 ACL

      • 复制 名称和别名 我这里是 iqn.1998-01.com.vmware:vserver-1-3c377af4
      • 回到 iSCIS 服务端 执行 targetcli 继续进入交互界面
      • 执行命令 创建ACL
        1
        2
        3
        /> /iscsi/iqn.2019-11.yumc.pw:vmware/tpg1/acls create iqn.1998-01.com.vmware:vserver-1-3c377af4
        Created Node ACL for iqn.1998-01.com.vmware:vserver-1-3c377af4
        Created mapped LUN 0.
    • 网络端口绑定 添加网卡端口绑定 选择刚才新建的网卡

    • 动态目标 添加动态目标 填写服务器地址 点击保存配置
  • 存储 > 设备
    • 重新扫描 应该能看到扫描到的 iSCSI 了
  • 存储 > 数据存储
    • 新建数据存储
    • 创建新的 VMFS 数据存储
    • 名称 iscsi
    • 选择 LIO-ORG iSCSI Disk
    • 完成后续步骤

扩容 LVM 之后 扩容 iSCSI

  • 由于之前的VG里面还存有容量 所以直接扩容
  • 执行 lvresize -L +512G /dev/iscsi/vmware
  • 嗯 然后就好了

ESXI 扩容数据存储

  • 存储 > 数据存储
  • 选择之前的 iscsi
  • 选择 增加容量
  • 选择 展开现有的 VMFS 数据存储区
  • 选择分区
  • 选择原有分区 然后拉一下进度条到底
  • 选择确认