Vultr教程:如何创建块存储 iSCSI 门户

国外主机商 (624) 2022-05-25 15:18:32

Vultr的云块存储技术使您可以将高性能的可扩展存储安装到您的实例,从而使空间管理更加灵活。该存储具有高可用性,冗余性和SSD支持,可提供卓越的性能。本文介绍了如何在 Debian 服务器上创建 iSCSI 网关以通过 iSCSI 托管块存储。

点击进入:Vultr官网

本指南中使用的术语:

  • 目标:托管 iSCSI 网关和块存储的服务器
  • 发起者:使用 iSCSI 上的块存储的服务器
  • IQN:iSCSI 限定名称。 这是定义如何识别 iSCSI 目标和启动器的标准格式。

例如,您可以将 Vultr 云服务器用作目标,将裸机服务器用作启动器。

最佳实践

  • 我们强烈建议您使用 CPU 优化计划,其中每个要挂载的块存储卷至少有一个 vCPU。
  • 为了安全起见,您应该为所有 iSCSI 连接使用 Vultr VPC。 此外,与公共网络连接不同,VPC 上的 iSCSI 流量不计入您的带宽配额,从而为您节省潜在费用。

安装目标服务器

本指南使用 Debian,但对于任何支持 Open-iSCSI 的 Linux 发行版,步骤都类似。

1、部署一个新的 Debian 11 服务器作为目标。

2、创建块存储订阅并将其附加到目标服务器。

3、以 root 身份通过 SSH 连接到目标服务器。

4、安装 targetcli 和 open-iscsi

# apt install targetcli-fb open-iscsi

5、启用 iSCSI 守护程序并启动它。

# systemctl enable iscsid.service --now

6、运行 targetcli 进入 iSCSI 配置的命令行界面。 命令运行后提示符变为 />。

# targetcli
/>

7、导航到块存储后备库。

/> cd backstores/block

8、对于每个挂载的块存储卷,创建一个后台存储。 下面是一个示例,它为 /dev/vdb 上的订阅创建一个名为 vdb 的后台存储。

/backstores/block> create vdb /dev/vdb

9、创建目标 IQN。 IQN 名称格式为 iqn.YEAR-MONTH.domain:targetname。 作为惯例,域是颠倒的,所以example.com的域表示为com.example。 目标名称可以是您想要的任何名称。 此示例使用目标。

/backstores/block> cd /iscsi
/iscsi> create iqn.2022-05.com.example:target

10、创建到块设备的 LUN 映射。

/iscsi> cd iqn.2022-05.com.example:target/tpg1/luns
/iscsi/iqn.20..et/tpg1/luns> create /backstores/block/vdb

11、设置 ACL 以启用双向 CHAP 身份验证。

  • 启动器名称可以是您想要的任何名称。 本指南使用启动器作为示例名称。
  • 您应该使用强大的、随机生成的用户名和密码。 本指南仅使用弱名称和密码作为示例。

示例发起者用户名是initiator_user,密码是initiator_password。 示例目标用户名是 target_user,密码是 target_password。

/iscsi/iqn.20..et/tpg1/luns> cd ../acls
/iscsi/iqn.20..et/tpg1/acls> create iqn.2022-05.com.example:initiator
/iscsi/iqn.20..et/tpg1/acls> cd iqn.2022-05.com.example:initiator/
/iscsi/iqn.20..om:initiator> set auth userid=initiator_user
/iscsi/iqn.20..om:initiator> set auth password=initiator_password
/iscsi/iqn.20..om:initiator> set auth mutual_userid=target_user
/iscsi/iqn.20..om:initiator> set auth mutual_password=target_password

12、切换到根目录,保存您的 targetcli 配置,然后退出。

/iscsi/iqn.20.../tpg1/portals> cd /
/> saveconfig
/> exit

13、启用 targetclid 服务。 当目标服务器重新启动时,需要此步骤来重新加载配置。

# systemctl enable targetclid.service --now

14、使用以下命令验证 iSCSI 服务是否正在侦听端口 3260。 IP 地址 0.0.0.0 表示服务正在侦听所有接口。

# ss -napt | grep 3260
LISTEN 0      256    0.0.0.0:3260      0.0.0.0:*

15、将防火墙配置为向 Initiator 开放端口 3260。 Debian 11 使用 ufw 作为其默认防火墙。 用启动器的 IP 地址替换本示例中使用的 10.10.10.123。 我们强烈建议您仅启用连接到 Vultr VPC 的专用网络接口。

# ufw allow from 10.10.10.123 to any port 3260

配置启动器

1、以 root 身份通过 SSH 连接到您的 Initiator 服务器,该服务器可以是任何支持 open-iscsi 的基于 APT 或 RPM 的服务器。

2、在 Initiator 上,安装 open-iscsi 并启动 iscsid 服务。

基于 APT 的 Linux

# apt install -y open-iscsi
# systemctl enable iscsid.service --now

基于 RPM 的 Linux

# yum -y install iscsi-initiator-utils
# systemctl enable iscsid.service --now

3、在文本编辑器中打开 /etc/iscsi/initiatorname.iscsi。

# nano /etc/iscsi/initiatorname.iscsi

4、设置 iSCSI Initiator 名称以匹配您在 iSCSI Target 服务器上设置的名称。 例如,本指南使用 iqn.2022-05.com.example:initiator。

InitiatorName=iqn.2022-05.com.example:initiator

5、保存并退出文件。

6、在文本编辑器中打开 /etc/iscsi/iscsid.conf。

# nano /etc/iscsi/iscsid.conf

7、如图所示编辑文件以配置身份验证。

# Uncomment the following line to enable CHAP
node.session.auth.authmethod = CHAP

# Uncomment the following line to enable strong authentication algorithms
node.session.auth.chap_algs = SHA3-256,SHA256,SHA1,MD5

# Uncomment and specify the username and password you set on the target server
node.session.auth.username = initiator_user
node.session.auth.password = initiator_password

# Uncomment and specify the mutual username and password you set earlier
node.session.auth.username_in = target_user 
node.session.auth.password_in = target_password

# Optional: Setup automatic reconnect after a reboot by changing `node.startup` from `manual` to `automatic`
node.startup = automatic

8、重新启动 iscsid 服务以设置新配置。

# systemctl restart iscsid.service

9、发现 Initiator 上的目标。

# iscsiadm -m discovery -t st -p 10.10.10.123
10.10.10.123:3260,1 iqn.2022-05.com.example:target

10、登录到目标服务器。 这只需要一次; 您之前创建的 iscsid.service 将在机器重新启动时重新启动连接。

# iscsiadm -m node --login
Logging in to [iface: default, target: iqn.2022-05.com.example:target, portal: 10.10.10.123,3260]
Login to [iface: default, target: iqn.2022-05.com.example:target, portal: 10.10.10.123,3260] successful.

11、该磁盘现在应该通过 iSCSI 安装在 Initiator 上。 您可以使用 lsblk 进行检查。 在此示例中,sda 是目标。

# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
sr0     11:0    1 1024M  0 rom
vda    254:0    0   55G  0 disk
└─vda1 254:1    0   55G  0 part /

块存储卷现在可通过 iSCSI 供 Initiator 使用,您可以像任何其他块设备一样将其挂载到 Linux 文件系统。

THE END