iSCSI 发起程序是一种用于同 iSCSI 目标器认证并访问服务器上共享的LUN的客户端。我们可以在本地挂载的硬盘上部署任何操作系统,只需要安装一个包来与目标器验证。
初始器客户端设置
功能
- 可以处理本地挂载磁盘上的任意文件系统
- 在使用fdisk命令分区后不需要重启系统
前置阅读
我的客户端设置
- 操作系统 – CentOS 6.5 (Final)
- iSCSI 目标器 IP – 192.168.0.50
- 使用的端口 : TCP 3260
警告:永远不要在LUN还挂载在客户端(发起程序)时停止服务。
客户端设置
1. 在客户端,我们需要安装包‘iSCSI-initiator-utils’,用下面的命令搜索包。
# yum search iscsi
示例输出
============================= N/S Matched: iscsi ================================
iscsi-initiator-utils.x86_64 : iSCSI daemon and utility programs
iscsi-initiator-utils-devel.x86_64 : Development files for iscsi-initiator-utils
2. 找到了包,就用下面的yum命令安装初始化包。
# yum install iscsi-initiator-utils.x86_64
3. 安装完毕后,我们需要发现目标器上的共享。客户端的命令有点难记,因此我们使用man找到需要运行的命令列表。
# man iscsiadm
man iscsiadm
4. 按下SHIFT+G 进入man页的底部并且稍微向上滚动找到示例的登录命令。下面的发现命令中,需要用我们的服务器IP地址来替换。
# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.0.200 --discover
5. 这里我们从下面的命令输出中找到了iSCSI的限定名(iqn)。
192.168.0.200:3260,1 iqn.2014-07.com.tecmint:tgt1
发现服务器
6. 要登录就用下面的命令来连接一台LUN到我们本地系统中,这会与服务器验证并允许我们登录LUN。
# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260 --login
登录到服务器
注意:登出使用登录命令并在命令的最后使用logout来替换。
# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260 --logout
登出服务器
7. 登录服务器后,使用下面的命令列出节点的记录行。
# iscsiadm --mode node
列出节点
8. 显示特定节点的所有数据
# iscsiadm --mode node --targetname iqn.2014-07.com.tecmint:tgt1 --portal 192.168.0.200:3260
示例输出
# BEGIN RECORD 6.2.0-873.10.el6
node.name = iqn.2014-07.com.tecmint:tgt1
node.tpgt = 1
node.startup = automatic
node.leading_login = No
iface.hwaddress = <empty>
iface.ipaddress = <empty>
iface.iscsi_ifacename = default
iface.net_ifacename = <empty>
iface.transport_name = tcp
iface.initiatorname = <empty>
iface.bootproto = <empty>
iface.subnet_mask = <empty>
iface.gateway = <empty>
iface.ipv6_autocfg = <empty>
iface.linklocal_autocfg = <empty>
....
9. 接着列出使用的磁盘,fdisk会列出所有的登录认证过的磁盘。
# fdisk -l /dev/sda
列出磁盘
10. 运行fdisk命令来创建一个新的分区
# fdisk -cu /dev/sda
创建新分区
注意:在使用fdisk创建新分区之后,我们无需重启,就像使用我们本地的文件系统一样就行。因为这个将远程共享存储挂载到本地了。
11. 格式化新创建的分区
# mkfs.ext4 /dev/sda1
格式化新分区
12. 创建一个目录来挂载新创建的分区
# mkdir /mnt/iscsi_share
# mount /dev/sda1 /mnt/iscsi_share/
# ls -l /mnt/iscsi_share/
挂载新分区
13. 列出挂载点
# df -Th
- -T – 输出文件系统类型
- -h – 以易读的方式显示大小
列出新分区
14. 如果需要永久挂载,使用fstab文件
# vim /etc/fstab
15.在fstab后追加下面行
/dev/sda1 /mnt/iscsi_share/ ext4 defaults,_netdev 0 0
注意: 在fstab中使用_netdev,说明这是一个网络设备。
自动挂载分区
16. 最后检查我们fstab文件是否有错误。
# mount -av
- -a – 所有挂载点
- -v – 冗余模式
验证fstab文件
我们已经成功完成了我们的客户端配置。现在让我们像本地磁盘一样使用它吧。
via: http://www.tecmint.com/iscsi-initiator-client-setup/
作者:Babin Lonston 译者:geekpi 校对:wxy
{14. 如果需要永久挂载,使用fdtab文件} fdtab写错了吧,应该是fstab配置文件
谢谢!
永久挂载的方式中,将iscsi划分的空间/dev/sda1 挂载到 /mnt/iscsi_share 目录下,如果服务器重启后,网络出现故障,iscsi空间无法正常挂载到client端,系统执行fstab文件后,貌似会导致系统卡死无法正常启动
有个问题,client端基于CHAP的认证,是针对哪个级别的概念?举个例子:server端有target1和target2。能不能针对target1设置访问的用户名和密码:user1/passwd1。然后再针对target2设置访问的用户名和密码:user2/passwd2?能这样配置吗?如果能,那么在client端,该如何在配置文件里头书写针对两个不同target的登录认证信息??