12.5. 基于 iSCSI 的存储池
本节介绍使用基于 iSCSI 的设备来存储客户机虚拟机。
iSCSI(互联网小型计算机系统接口)是用于共享存储设备的网络协议。iSCSI 通过 IP 层使用 SCSI 指令连接到目标(存储服务器)。
12.5.1. 配置软件 iSCSI 目标 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
scsi-target-utils 软件包提供了用于创建软件支持的 iSCSI 目标的工具。
过程 12.4. 创建 iSCSI 目标
安装所需软件包
安装 scsi-target-utils 软件包及所有依赖项yum install scsi-target-utils
# yum install scsi-target-utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 tgtd 服务
tgtd 服务托管物理机器 SCSI 目标,并使用 iSCSI 协议托管物理机器目标。启动 tgtd 服务,并使用 chkconfig 命令重新启动后使服务持久。service tgtd start chkconfig tgtd on
# service tgtd start # chkconfig tgtd on
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:创建 LVM 卷
LVM 卷对于 iSCSI 后备镜像很有用。对于 guest 虚拟机,LVM 快照和大小大小会很有用。这个示例在 RAID5 阵列中创建一个名为 virtimage1 的 LVM 镜像,用于托管 iSCSI 的客户机虚拟机。创建 RAID 阵列
Red Hat Enterprise Linux 部署指南 介绍了如何创建软件 RAID5 阵列。创建 LVM 卷组
使用 vgcreate 命令创建名为 virtstore 的卷组。vgcreate virtstore /dev/md1
# vgcreate virtstore /dev/md1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 LVM 逻辑卷
使用 lvcreate 命令,在 virtstore 卷组中创建名为 virtimage1 的逻辑卷组,大小为 20GB。lvcreate --size 20G -n virtimage1 virtstore
# lvcreate --size 20G -n virtimage1 virtstore
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新逻辑卷 virtimage1 已准备好用于 iSCSI。
可选:创建基于文件的镜像
基于文件的存储足以进行测试,但不建议用于生产环境或任何重要的 I/O 活动。此可选步骤为 iSCSI 目标创建名为 virtimage2.img 的文件。为镜像创建新目录
创建新目录来存储镜像。目录必须具有正确的 SELinux 上下文。mkdir -p /var/lib/tgtd/virtualization
# mkdir -p /var/lib/tgtd/virtualization
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建镜像文件
创建名为 virtimage2.img、大小为 10GB 的镜像。dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
# dd if=/dev/zero of=/var/lib/tgtd/virtualization/virtimage2.img bs=1M seek=10000 count=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 SELinux 文件上下文
为新镜像和目录配置正确的 SELinux 上下文。restorecon -R /var/lib/tgtd
# restorecon -R /var/lib/tgtd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 基于文件的新映像 virtimage2.img 已准备好用于 iSCSI。
创建目标
通过在/etc/tgt/targets.conf
文件中添加 XML 条目,即可创建目标。target
属性需要 iSCSI 限定名称(IQN)。IQN 采用以下格式:iqn.yyyy-mm.reversed domain name:optional identifier text
iqn.yyyy-mm.reversed domain name:optional identifier text
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:- YYYY-mm 表示设备已启动的年和月(例如 :2010-05);
- reversed 域名 是反向主机物理机器域名(例如 IQN 中的 server1.example.com )是 com.example.server1;以及
- 可选标识符文本 是任何文本字符串,没有空格,可协助管理员识别设备或硬件。
本例为在 server1.example.com 上可选步骤创建的两类镜像创建 iSCSI 目标(可选标识符 test )。将以下内容添加到/etc/tgt/targets.conf
文件中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保/etc/tgt/targets.conf
文件包含default-driver iscsi
行,以将驱动程序类型设置为 iSCSI。驱动程序默认使用 iSCSI。重要这个示例创建了一个全局可访问的目标,且无访问权限控制。有关实现安全访问的信息,请参阅 scsi-target-utils。重启 tgtd 服务
重启tgtd
服务以重新载入配置更改。service tgtd restart
# service tgtd restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow iptables 配置
通过 iptables 打开端口 3260,以进行 iSCSI 访问。iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT service iptables save service iptables restart
# iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT # service iptables save # service iptables restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新目标
查看新目标,以确保设置成功,使用 tgt-admin --show 命令。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告ACL 列表设置为 all。这允许本地网络上的所有系统访问这个设备。建议在生产环境中设置主机物理机器访问 ACL。可选:测试发现
测试新 iSCSI 设备是否可以发现。iscsiadm --mode discovery --type sendtargets --portal server1.example.com
# iscsiadm --mode discovery --type sendtargets --portal server1.example.com 127.0.0.1:3260,1 iqn.2010-05.com.example.server1:iscsirhel6guest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:测试附加该设备
附加新设备(iqn.2010-05.com.example.server1:iscsirhel6guest),以确定是否可以附加该设备。iscsiadm -d2 -m node --login
# iscsiadm -d2 -m node --login scsiadm: Max file limits 1024 1024 Logging in to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] Login to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 分离该设备。iscsiadm -d2 -m node --logout
# iscsiadm -d2 -m node --logout scsiadm: Max file limits 1024 1024 Logging out of session [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260 Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel6guest, portal: 10.0.0.1,3260] successful.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
iSCSI 设备现在可以用于虚拟化。