linux下ISCSI存储挂载方法
安装
不同的操作系统对应各自的iSCSI initiator,以CentOS 6.5为例。
安装方法有两种:
1) 直接使用“yum install iscsi*”进行安装; 2) 到网上下载
iscsi-initiator-utils-devel-6.2.0.873-10.el6.x86_64 iscsi-initiator-utils-6.2.0.873-10.el6.x86_64 使用“ rpm -ivh iscsi-initiator”命令进行安装。
安装完成后,启动iscsi守护进程
[root@CentOS1 桌面]#service iscsid start
将iscsid添加到系统启动
[root@CentOS1 桌面]#chkconfig iscsid on
[root@CentOS1 桌面]#chkconfig iscsid --list (查看ISCSI启动状态)
挂载iSCSI主要用到的工具叫“iscsiadm”,iscsiadm是基于命令行的iscsi管理工具,提供了对iscsi节点、会话、连接以及发现记录的操作。
iscsiadm的使用说明可以查看sr/share/doc/iscsi-initiator-utils-6.2.0.873/README,也可以运行man iscsiadm或iscsiadm --help
使用
首先要在存储设备上做好RAID,设置好iSCSI 目标方(target)。由于只是做实验,我就使用了一个开源软件来模拟iSCSI存储设备,软件名称叫openfiler,可以使用虚拟机来安装,详细可以查阅相关的教程。
下面来讲一下连接iscsi设备的步骤:
1)发现目标
默认情况下,iscsi发起方和目标方之间通过端口3260连接。假设已知iscsi的目标方IP是10.10.13.3,运行下列命令:
[root@CentOS1 桌面]#iscsiadm -m discovery -t sendtargets -p 10.10.13.3:3260 (若端口是默认端口,IP后面
wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();});
可以不跟端口号)
此时找到拥有一个或多个目标(target)
10.10.13.310.10.13.3:3260,1 iqn.2006-01.com.openfiler:tsn.8edaa9212d3a 192.169.139.13:3260,1 iqn.2006-01.com.openfiler:tsn.8edaa9212d3a 被发现的目标也叫做节点
2)登入节点
以上面被发现的目标为例:
[root@CentOS1 桌面]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.8edaa9212d3a -p 10.10.13.3:3260 -l
其中iqn.2006-01.com.openfiler:tsn.8edaa9212d3a是目标名
注:如果要在系统启动时自动登入
[root@CentOS1 桌面]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.8edaa9212d3a -p 10.10.13.3:3260 --op update -n node.startup -v automatic
登入节点后,运行
[root@CentOS1 桌面]#fdisk -l
应该可以看到目标方的存储设备信息,如
Disk /dev/sdb: 5268 MB, 5268045824 bytes 163 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 10106 * 512 = 5174272 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xc9ac33ab
Device Boot Start End Blocks Id System
/dev/sdb即为连接的iscsi存储设备
3)格式化设备
如欲将设备格式化为ext4文件系统,运行 [root@CentOS1 桌面]# mkfs.ext4 /dev/sdb
4)挂接设备
a、 在/下创建data目录作为挂载目录 [root@CentOS1桌面]#mkdir /data
b、运行mount命令:
[root@CentOS1 桌面]# mount /dev/sdb /data
c、运行df -h可以看到:
/dev/sdb 4.9G 138M 4.5G 3% /data
iscsi设备被成功挂接,可以当作常规存储设备使用了。
注:如果要在系统启动时自动挂接 [root@CentOS1 桌面]# vi/etc/fstab
加入一行:
/dev/sdb /dataext4 default 0 0
但是,Linux系统重启后,磁盘设备的名称可能会发生飘移,从而引起文件系统不能挂载上来或者不能正确挂载,使用UUID的方式进行挂载可以解决这个问题:
使用命令“tune2fs -l /dev/sdb”可以查到文件系统的UUID:
Filesystem UUID: 2cfe9765-4586-4160-9394-4f698525f565
然后在/etc/fstab中添加
UUID=2cfe9765-4586-4160-9394-4f698525f565/dataext4 default 0 0 替换掉原来的
/dev/sdb /dataext4 default 0 0
注:如何手动通过UUID来挂载磁盘 在/etc/fstab中添加
UUID=2cfe9765-4586-4160-9394-4f698525f565/dataext4noauto 0 0
这样系统启动后是不会挂载这个磁盘的,然后执行以下命令:
[root@CentOS1 桌面]#mount UUID=2cfe9765-4586-4160-9394-4f698525f565
这样就可以手动通过UUID来挂载磁盘了
5)登出节点
a、首先解除挂接
[root@CentOS1 桌面]#umount /data
b、登出
[root@CentOS1 桌面]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.8edaa9212d3a -p 10.10.13.3-u
---------------------------
注意:使用脚本实现开关机挂载或卸载iSCSI存储,把下面的脚本加入到/etc/rc.local 文件中,多个iSCSI存储的话 就加入多个IP地址。
如下:
1:挂载iSCSI脚本
su - root -c “iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.8edaa9212d3a -p 10.10.13.3-l” sleep 10
su - root -c “mount /dev/sdb1 /data”
2:卸载iSCSI脚本
su - root -c “umount /data” sleep 10
su - root -c “iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.8edaa9212d3a -p 10.10.13.3–u”
--------------------------------------
iSCSI initiator配置好后主要有以下两个配置文件:
配置文件 /etc/iscsi/iscsid.conf node.startup=auto
node.session.iscsi.InitialR2T=Yes node.session.iscsi.ImmediateData=No
node.session.timeo.replacement_timeout=60
[root@CentOS2桌面]#cat /etc/iscsi/iscsid.conf
主机名/etc/iscsi/initiatorname.iscsi 格式为InitiatorName=iqn.xxxx
[root@CentOS2桌面]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:f426c211e826