访问 iSCSI 存储
iSCSI ( Internet SCSI )支持从客户端(发起端)通过 IP 向远程服务器上的 SCSI 存储设备(目标)发送 SCSI 命令。 iSCSI 限定名称用于确定发起端和目标,并采用 iqn.yyyy-mm.{reverse domain}:label 的格式。默认情况下,网络通信是至 iSCSI 目标上的端口 3260/tcp 的明文。
iSCSI 发起端:需要访问原始 SAN 存储的客户端。
iSCSI 目标:从 iSCSI 服务器提供的远程硬盘磁盘,或“目标门户”
iSCSI 目标门户:通过网络向发起端提供目标的服务器。
IQN :“ iSCSI 限定名称”。每个发起端和目标需要唯一名称进行标识,最好的做法是使用一个在 Internet 上可能独一无二的名称。
通过 iSCSI 发起端访问新目标 :
安装 iSCSI 发起端软件: iscsi-initiator-utils
在 /etc/iscsi/initiatorname.iscsi 中设置发起端的 IQN
(通常名称空间中的唯一标签与组织管理的 DNS 名称相匹配,自定义)
以下在虚拟机下操作:
查找 iSCSI 服务器所提供的 iSCSI 目标(目标门户)
# iscsiadm -m discovery -t st -p 192.168.0.254
登录服务器上的一个或多个 iscsi 目标
# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -l
# ll /dev/sda
此时,可以使用 iSCSI 磁盘,就好像它是本地连接硬盘驱动器。
可以挂载现有文件系统。如果磁盘未格式化,可以通过 fdisk 进行分区,例如,通过文件系统格式化分区或作为 LVM 物理卷。
在 /etc/fstab 中永久挂载文件系统
1. 使用 blkid 确定文件系统 UUID 并使用 UUID 挂载,而不是 /dev/sd* 设备名称。(每次引导时显示的设备名称都不同,具体取决于 iSCSI 设备通过网络进行响应的顺序。如果按设备名称挂载,这会导致使用错误的设备。)
2. 在 /etc/fstab 中使用 _netdev 作为挂载选项。(这将确保客户端不会尝试挂载文件系统,直至启用联网。否则,在引导时系统将出错。)
3. 确保 iscsi 和 iscsid 服务在引导时启动。
若要中断使用 iSCSI 目标:
确保没有使用目标所提供的任何设备。
确保从 /etc/fstab 等位置中删除使用目标的所有永久参考。
登出 iSCSI 目标,以暂时断开连接。
# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -u
删除 iSCSI 目标的本地记录,以永久断开连接。
# iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -o delete
加密集中存储
默认情况下,发起端和目标之间的 iSCSI 通信以明文形式发送,以获得最大性能。但是,这样存在明显的安全风险。可以在单独的网络上隔离 iSCSI 流量,或在 IPsec 或 TLS 加密隧道中进行封装。
LUKS ( Linux 统一密钥设置)可用于对块设备内容进行加密。提高 iSCSI 目标上数据安全性的另一个方法是使用 LUKS 机密 iSCSI 目标的内容、其分区或其逻辑卷,并且仅当其到达 iSCSI 发起端时解密磁盘上的数据。
若要将 LUKS 与 iSCSI 一起使用,必须先设置加密,然后再格式化块设备,以进行使用之前。对于现有已加密的块设备,必须打开设备(用密码解密),然后再使用其内容,并且不使用设备时,应将其关闭。文件 /etc/crypttab 包含在引导时为打开文件加密设备而自动提示输入 LUKS 密码所需的信息以及指明加密设备名称所需要的信息,之后可以在 /etc/fstab 中使用这些信息。
创建加密块设备
1. 使用 fdisk 对磁盘进行分区:
# fdisk -cul /dev/sda
其中, /dev/sda 是磁盘名称,即 iSCSI 磁盘设备
2. 为获得更高的安全性,用 /dev/urandom 中的随机数据填写设备:
# dd if=/dev/urandom of=/dev/sda1 [ /dev/sda1] 是上面创建的分区的名称。
该步骤可选,但它可以极大地提高加密强度。不足之处是可能需要花费很长的时间(大多数系统上,每千兆字节需要若干分钟)。
3. 通过 cryptsetup luksFormat 加密设备:
# cryptsetup luksFormat /dev/sda1
解密并永久挂载加密块设备
# cryptsetup luksOpen /dev/sda1 iscsi
# mkfs.ext4 /dev/mapper/iscsi。。。。。在打开的设备上创建文件系统
# vim /etc/crypttab
iscsi /dev/sda1
# vim /etc/fstab
/dev/mapper/iscsi /iscsi ext4 _netdev 0 0
# mkdir /iscsi 。。。。。挂载文件系统,以确保其永久
# mount -a 。。。。。。挂载
卸载并关闭加密的块设备
1. 卸载设备:
# umount /iscsi
2. 使用 cryptsetup luksClose 关闭加密的设备:
# cryptsetup luksClose /dev/mapper/iscsi