Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

附录 B. iSCSI 磁盘

互联网小计算机系统接口(iSCSI)是允许计算机与 SCSI 需要的存储设备沟通,并响应结转的 TCP/IP 协议。因为 iSCSI 是基于标准 SCSI 协议,所以它沿用 SCSI 的术语。要被发送的 SCSI 总线中的设备(回应这些请求)被称为对象(target),发出请求的设备被称为发起方(initiator)。换句话说,iSCSI 磁盘是一个对象,而等同于 SCSI 控制器或者 SCSI 主机总线适配器(HBA)的 iSCSI 软件被称为发起方。本附录只讨论将 Linux 作为 iSCSI 发起方:Linux 是如何使用 iSCSI 磁盘?Linux 又是如何托管 iSCSI 磁盘的?
Linux 在内核中有一个软件 iSCSI 发起方并组成 SCSI HBA 驱动程序,因此可允许 Linux 设备 iSCSI 磁盘。但是因为 iSCSI 是完全基于网络的协议,iSCSI 发起方支持需要的功能不仅仅是可以通过网络发送 SCSI 数据包。因为 Linux 可以使用 iSCSI 对象,所以 Linux 必须找到网络中的对象并与其连接。在有些情况下,Linux 必须发送验证信息以获得对该对象的访问。Linux 还必须侦测所有网络连接失败,并建立新的连接,包括在必要时重新登录。
查找、连接和登录操作是在用户空间由 iscsiadm 程序处理的,错误信息也是在用户空间由 iscsid 处理的。
iscsiadmiscsid 都是 Red Hat Enterprise Linux 中 iscsi-initiator-utils 软件包的一部分。

B.1. anaconda 中的 iSCSI 磁盘

anaconda 可使用两种方法找到(然后登录到)iSCSI 磁盘:
  1. 当启动 anaconda 时,它会检查系统 BIOS 或者附加引导 ROM是否支持 iSCSI 引导固件表(iBFT),它是可使用 iSCSI 引导的系统 BIOS 扩展。anaconda 会为配置的引导磁盘从 BIOS 中读取 iSCSI 对象信息并登录到这个对象,使其成为可用安装对象。
  2. 如果在安装过程中选择 指定的存储配置 选项,存储设备选择页面会出现 添加高级目标 按钮。点击这个按钮,就可以添加 iSCSI 目标信息,比如发现的 IP 地址。Anaconda 探测给出的 IP 地址,并将其记录到所有找到的目标中。有关可以指定 iSCSI 目标的详情,请参考 第 9.6.1.1 节 “高级存储选项”
anaconda 使用 iscsiadm 查找并登录到 iSCSI 目标时,iscsiadm 会将有关这些目标的所有信息自动保存到 iscsiadm iSCSI 数据库中。Anaconda 会将这个数据库复制到安装的系统中,并标记所有不用于 / 的 iSCSI 目标,以便系统可在启动时自动登录到该目标。如果将 / 放在 iSCSI 目标中,initrd 将登录到这个目标,同时 anaconda 将不在启动脚本中包含这个目标以避免多次尝试登录到同一目标中。
如果将 / 放在 iSCSI 对象中,anaconda 会将 NetworkManager 设置为忽略任意在安装过程中激活的网络接口。系统启动时 initrd 还会配置这些接口。如果 NetworkManager 要重新配置这些接口,则系统会丢失其与 / 的连接。