本文介绍怎样在 Debian 服务器上创建 iSCSI 网关以通过 iSCSI 托管块存储。
本指南中使用的术语:
- 目标: 服务器 托管 iSCSI 网关和块存储
- 发起者: 服务器 使用 基于 iSCSI 的块存储
- IQN: iSCSI 限定名称。 这是定义怎样识别 iSCSI 目标和启动器的标准格式。
最佳实践
- 我们强烈建议使用 CPU 优化 为您要挂载的每个块存储卷计划至少一个 vCPU,或使用裸机服务器。
- 为了安全和节省成本,您应该为所有 iSCSI 连接使用 Vultr VPC。 公共互联网上的连接将计入您的带宽配额。 Vultr VPC 上的流量是安全的,不计入带宽配额。
安装目标服务器
- 部署一个新的 Debian 11 服务器作为 目标.
- 创建一个 块存储订阅 并将其附加到目标服务器。
- 以 root 身份通过 SSH 连接到目标服务器。
安装
targetcli
和open-iscsi
# apt install targetcli-fb open-iscsi
启用 iSCSI 守护程序并启动它。
# systemctl enable iscsid.service --now
跑
targetcli
进入 iSCSI 配置的命令行界面。 提示变为/>
命令运行后。# targetcli />
导航到块存储后备库。
/> cd backstores/block
对于每个挂载的块存储卷,创建一个后台存储。 这是一个 example 为订阅创建一个后台存储
/dev/vdb
命名vdb
./backstores/block> create vdb /dev/vdb
创建目标 IQN。 IQN 名称格式为
iqn.YEAR-MONTH.domain:targetname
. 作为惯例,域是颠倒的,所以域example.com
表示为com.example
. 目标名称可以是您想要的任何名称。 这 example 用途target
./backstores/block> cd /iscsi /iscsi> create iqn.2022-05.com.example:target
创建到块设备的 LUN 映射。
/iscsi> cd iqn.2022-05.com.example:target/tpg1/luns /iscsi/iqn.20..et/tpg1/luns> create /backstores/block/vdb
设置 ACL 以启用双向 CHAP 身份验证。
- 启动器名称可以是您想要的任何名称。 本指南使用
initiator
作为 example 姓名。 - 你应该使用 强大的,随机生成的 用户名和密码。 本指南仅使用弱名称和密码作为示例。
这 example 发起人用户名是
initiator_user
密码是initiator_password
. 这 example 目标用户名是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
- 启动器名称可以是您想要的任何名称。 本指南使用
切换到根目录,保存
targetcli
配置,然后退出。/iscsi/iqn.20.../tpg1/portals> cd / /> saveconfig /> exit
启用
targetclid
服务。 当目标服务器重新启动时,需要此步骤来重新加载配置。# systemctl enable targetclid.service --now
使用以下命令验证 iSCSI 服务是否正在侦听端口 3260。 IP地址 0.0.0.0 表示服务正在侦听所有接口。
# ss -napt | grep 3260 LISTEN 0 256 0.0.0.0:3260 0.0.0.0:*
将防火墙配置为向 Initiator 开放端口 3260。 Debian 11 使用
ufw
作为其默认防火墙。 将启动器的 IP 地址替换为 10.10.10.123 用在这个 example. 我们强烈建议您仅启用连接到 Vultr VPC 的专用网络接口。# ufw allow from 10.10.10.123 to any port 3260
配置启动器
- 以 root 身份通过 SSH 连接到您的 Initiator 服务器,该服务器可以是任何支持 APT 或 RPM 的服务器
open-iscsi
. 在启动器上,安装
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
打开
/etc/iscsi/initiatorname.iscsi
在文本编辑器中。# nano /etc/iscsi/initiatorname.iscsi
设置 iSCSI Initiator 名称以匹配您在 iSCSI Target 服务器上设置的名称。 为了 example本指南使用
iqn.2022-05.com.example:initiator
.InitiatorName=iqn.2022-05.com.example:initiator
Save 并退出文件。
打开
/etc/iscsi/iscsid.conf
在文本编辑器中。# nano /etc/iscsi/iscsid.conf
如图所示编辑文件以配置身份验证。
# 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
重新启动
iscsid
服务来设置新的配置。# systemctl restart iscsid.service
发现 Initiator 上的目标。
# iscsiadm -m discovery -t st -p 10.10.10.123 10.10.10.123:3260,1 iqn.2022-05.com.example:target
登录到目标服务器。 这只需要一次; 这
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.
该磁盘现在应该通过 iSCSI 安装在 Initiator 上。 你可以检查这个
lsblk
. 在这 example,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 文件系统。 有关详细信息,请参阅“装载块存储”主题。
更多信息
要了解有关 iSCSI 的更多信息和 targetcli
, 看:
注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com