Top

iSCSI(Internet SCSI)

本文翻译自FreeBSD手册32.12

iSCSI是一种通过网络共享存储设备的方式,不像NFS(工作在文件系统级别)那样,iSCSI工作在块设备级别。
术语target(目标)代表共享存储的系统,存储器可以是一个物理磁盘,也可以是表示多个磁盘或物理磁盘一部分的区域。
例如,如果磁盘使用zfs格式化的,则可以创建一个zvol用作iSCSI存储。

访问iSCSI存储的客户端称作initiators(启动器)。
对于启动器来说,通过iSCSI可用的存储显示为未格式化的原始磁盘(称为LUN),磁盘的设备节点显示在/dev/目录中,并且必须单独格式化和挂载。

FreeBSD提供了一个本机的、基于内核的iSCSI目标和启动器。

配置iSCSI target

两个步骤:

身份验证

以上示例本质上使不安全的,因为没有使用身份验证,允许任何人完全访问所有目标。
以下示例要求使用用户名和密码验证:
auth-group ag0 {
	chap username1 secretsecret
	chap username2 anothersecret
}
以上定义两个用户名和密码组合。
portal-group pg0 {
	discovery-auth-group no-authentication
	listen 0.0.0.0
	listen [::]
}

target iqn.2012-06.com.example:target0 {
	auth-group ag0
	portal-group pg0
	lun 0 {
		path /data/target0-0
		size 4G
	}
}
以上示例要求尝试连接目标时需要提供账号和密码,但仍然允许在没有身份验证的情况下发现目标。
若要发现目标时也进行身份验证,则需要指定discovery-auth-group到指定的组。

以上示例可简写为:
target iqn.2012-06.com.example:target0 {
	portal-group pg0
	chap username1 secretsecret

	lun 0 {
		path /data/target0-0
		size 4G
	}
}

配置iSCSI启动器

iSCSI启动器要求iscsid(8)守护程序正在运行。此守护程序无配置文件。仅需在/etc/rc.conf文件中加入:
iscsid_enable="YES"
然后运行:
# service iscsid start
iSCSI启动器连接iSCSI目标有两种方式: