Linux工作站通过iSCSI协议访问Windows Server

Linux工作站通过iSCSI协议访问Windows Server

崔炳华

1       环境准备

1.1     Server

Windows Storage Server Windows Server 系列中的存储服务器版本,是企业级的文件服务器平台,两者均可作为iSCSI服务器端,以下分别举例。

1.1.1  Windows Storage Server 2008

一台Windows Storage Server 2008(以下简称WSS2008R264位企业版)虚拟机作为iSCSI服务器(注:目前只有64位的企业版或工作组版支持WSS2008iSCSI服务器)。

WSS2008自带Microsoft提供的软件iSCSI Software Target 3.3

注意,如果WSS2008启用了防火墙服务,则需要允许TCP3260端口,这样才能为客户端提供服务:在“Windows防火墙中单击允许程序或功能通过Windows防火墙,然后勾选“iSCSI服务“Microsoft iSCSI Software Target”并确定。

IP192.168.0.177

MASK255.255.254.0

1.1.2  Windows Server 2012

一台Windows Server 2012(以下简称WS2012R264位)虚拟机作为iSCSI服务器。

WS2012上,iSCSI目标软件的安装步骤如下:

①点击桌面底部条的“服务器管理”;

②在“仪表盘”中选择“添加角色和功能”;

③在“在你开始之前”页中,单击“下一步”;

④在“选择开始类型”页中,选择“基于角色或者基于功能安装”,单击“下一步”;

⑤在“选择目标服务器”页中,选择“从服务器池中选择一个服务器”,单击“下一步”;

⑥在“选择服务器角色”页中,勾选“文件存储服务/文件和iSCSI服务”之下的“iSCSI目标服务器”和“iSCSI目标存储供应商”,单击“下一步”;

⑦在“确认安装选择”页中,勾选“如有必要自动重启目标服务器”,单击“安装”。

1.2     Client

一台Linux虚拟机(本例为CentOS 6.3)作为客户端。

注意,可以通过图形界面System – Administration – Add/Remove Software来搜索和SCSI相关的软件包,并进行安装。

建议为Linux虚拟机分配静态IP。因为如果使用DHCP来动态分配IP,则当其IP被重新分配时,WSS2008里记录的工作站(即Linux客户端)的IP地址就过时了。

IP192.168.0.204

MASK255.255.254.0

2       配置步骤

2.1     WSS2008设置为iSCSI存储服务器

2.1.1  WSS2008创建iSCSI目标

WSS2008上,创建iSCSI目标的步骤如下:

①打开Microsoft iSCSI Software Target,鼠标右键单击“iSCSI目标,在弹出的快捷菜单中选择创建iSCSI目标,进入向导页面,单击下一步;

②在“iSCSI目标标识页中,在“iSCSI目标名称文本框中,输入要创建的iSCSI目标名称,本例为cbh001;并在描述文本框中,输入相关的说明信息;

③在“iSCSI发起程序标识符页中,单击高级按钮,在弹出的高级标识符对话框中,单击添加按钮,在弹出的添加/编辑标识符对话框中,在标识符类型下拉列表中选择“IP地址,并输入工作站(即Linux客户端)的IP地址,本例为192.168.1.204

④返回到“iSCSI发起程序标识符页后,单击下一步按钮;在正在完成创建iSCSI目标向导页中,单击完成按钮。

注意,cbh001的“属性身份验证”中可以手动选择“启用CHAP”并配置用户名和密码。由于该iSCSI目标是提供给Linux工作站,建议不要启用。

2.1.2  WSS2008创建虚拟磁盘并添加到iSCSI目标

返回到Microsoft iSCSI Software Target后,创建虚拟磁盘的步骤如下:

①用鼠标右键“设备”,在弹出的快捷菜单中选择“创建虚拟磁盘”,进入向导页面,单击下一步;

②在文件页中,选择保存虚拟磁盘所在的分区,并设置以vhd为扩展名的虚拟磁盘文件,指定保存位置,本例为c:\cbh001.vhd

③在大小页中,为虚拟磁盘设置大小,本例为512MB。在本页中,显示出了当前驱动器容量、可用空间的最大值;

④在描述页中,为虚拟磁盘添加描述信息;

⑤在访问页中,单击添加按钮,在弹出的添加目标对话框中,选择将新创建的磁盘添加到一个iSCSI目标中。本例选择上一节创建的名为cbh001的目标;

⑥在正在完成创建虚拟磁盘向导’”页,单击完成按钮。

2.2     WS2012设置为iSCSI存储服务器

2.2.1  WS2012创建卷

WS2012上,创建卷的步骤如下:

①在“服务器管理”的“文件和服务器服务”中,单击“卷”,选中一个具体的卷,单击右键,选择“新建卷”;

②在“在你开始之前”页中,单击“下一步”;

③在“选择服务器和磁盘”页中,选择一个服务器后,单击“下一步”;

④在“指定卷大小”页中,需要指定卷的大小(建议一次性全部用完),单击“下一步”;

⑤在“分配驱动盘符”页中,分配一个驱动盘符,单击“下一步”;

⑥在“选择文件系统设置”页中,“文件系统”为“NTFS”,“分配单位”为“默认值”,单击“下一步”;

⑦在“确认选择”页中,确认无误后,单击“创建”。

2.2.2  WS2012创建虚拟磁盘并添加到iSCSI目标

返回到“服务器管理”的“文件和服务器服务”中,创建虚拟磁盘的步骤如下:

①单击“iSCSI”,单击“开始新的iSCSI虚拟磁盘导向”;

②在“选择iSCSI虚拟磁盘位置”页中,选中之前创建的“iSCSI目标”,单击“下一步”;

③在“指定iSCSI虚拟磁盘名称”页中,输入“名称”和“描述”,vhd的存放路径可以手动修改,单击“下一步”;

④在“指定iSCSI虚拟磁盘大小”页中,需要指定虚拟磁盘的大小(假如要分成两个虚拟磁盘,则分两次各划出一半的大小),单击“下一步”;

⑤在“分配iSCSI目标”页中,选择“新iSCSI目标”,单击“下一步”;

⑥在“指定目标名称”页中,输入“名称”和“描述”,单击“下一步”;

⑦在“指定接入服务器”页中,单击“增加”,可以增加initiator的类型(例如IP地址),增加完之后,单击“下一步”;

⑧在“身份验证”页中,可以手动选择“启用CHAP”并配置用户名和密码(由于该iSCSI目标是提供给Linux工作站,建议不要启用),单击“下一步”;

⑨在“确认选择”页中,确认无误后,单击“创建”。

2.3     Linux工作站连接iSCSI目标

2.3.1  修改iSCSI配置文件,并设置开机启动

[root@localhost ~]# vim /etc/iscsi/iscsid.conf

node.session.auth.username=

node.session.auth.password=

discovery.sendtargets.auth.username=

discovery.sendtargets.auth.password=

以上是设置会话target验证initiator”以及发现会话(discovery sessiontarget验证initiator”的用户名及对应的密码。由于我们暂不启用CHAP,所以上面这步可以忽略。

[root@localhost ~]# chkconfig iscsid on

[root@localhost ~]# chkconfig iscsi on

以上是设置iscsidiscsi服务每次开机启动,重启后才生效。

2.3.2  探测iSCSI目标

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.177:3260

192.168.0.177:3260,1 iqn.1991-05.com.microsoft:win-8d53c2tjiec-cbh001-target

以上是探测指定IP的指定端口上有哪些iSCSI目标,可以询问到target名称。

[root@localhost ~]# ll -R /var/lib/iscsi/nodes

/var/lib/iscsi/nodes:

total 8

drw-------. 6 root root 4096 Sep 29 14:27 iqn.1991-05.com.microsoft:win-8d53c2tjiec-cbh001-target

以上是探测所有的iSCSI目标。

2.3.3  登录iSCSI目标

[root@localhost ~]# service iscsi restart

[root@localhost ~]# iscsiadm -m node

192.168.0.177:3260,1 iqn.1991-05.com.microsoft:win-8d53c2tjiec-cbh001-target

[root@localhost ~]# iscsiadm -m node -T iqn.1991-05.com.microsoft:win-8d53c2tjiec-cbh001-target -p 192.168.0.177:3260 --login

Login to [iface: default, target: iqn.1991-05.com.microsoft:win-8d53c2tjiec-cbh001-target, portal: 192.168.0.177,3260] successful.

上面这条命令,IP地址是可选的,但仍然建议加上内网IP,以避免iSCIS的工作效率收到影响。--login-l是等效的。

[root@localhost home]# fdisk –l

Disk /dev/sdb: 536 MB, 536870912 bytes

17 heads, 61 sectors/track, 1011 cylinders

Units = cylinders of 1037 * 512 = 530944 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

以上可以查看到新增的磁盘,本例为/dev/sdb

2.3.4  LVM处理(可选流程)

[root@localhost home]# pvcreate /dev/sdb

Writing physical volume data to disk "/dev/sdb"

Physical volume "/dev/sdb" successfully created

以上是创建PV

[root@localhost home]# vgcreate iscsi /dev/sdb

Volume group "iscsi" successfully created

以上是创建VG

[root@localhost home]# vgdisplay

  --- Volume group ---

  VG Name               iscsi

  System ID            

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  1

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                0

  Open LV               0

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               508.00 MiB

  PE Size               4.00 MiB

  Total PE              127

  Alloc PE / Size       0 / 0  

  Free  PE / Size       127 / 508.00 MiB

  VG UUID               IPd84Q-A0yx-Z8Ei-11C8-7Ova-1x6f-W4X539

以上是查看VG容量,注意到Total PE只有127个。

[root@localhost home]# lvcreate -l 127 -n disk iscsi

  Logical volume "disk" created

以上是创建LV,用到了所有的PE

[root@localhost home]# lvdisplay

  --- Logical volume ---

  LV Path                /dev/iscsi/disk

  LV Name                disk

  VG Name                iscsi

  LV UUID                n046dd-5PYf-p4DF-QNhl-MMLO-c0Pe-yJv95R

  LV Write Access        read/write

  LV Creation host, time localhost.localdomain, 2013-09-29 17:00:01 +0800

  LV Status              available

  # open                 0

  LV Size                508.00 MiB

  Current LE             127

  Segments               1

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0

以上是查看LV容量。

2.3.5  格式化以及添加开机自动挂载

[root@localhost home]# mkfs -t ext4 /dev/iscsi/disk

[root@localhost home]# mkdir -p /data/iscsi

[root@localhost home]# vim /etc/fstab

/dev/iscsi/disk         /data/iscsi             ext4    defaults,_netdev   1 2

以上是添加开机自动挂载。注意,_netdev的意思是网络开机启动完成后才挂载。

[root@localhost home]# mount –a

[root@localhost home]# df –Th

/dev/mapper/iscsi-disk

              ext4    492M   11M  457M   3% /data/iscsi

可以看到,iSCSI目标已经成功挂载,可以当作常规存储设备使用了。

2.3.6  登出/删除/新增/更新iSCSI目标

关机之前建议正确的卸载和断开逻辑磁盘,否则会在target服务器上留下僵死的进程,造成服务器资源的浪费。

umount /data/iscsi

以上是解除挂载。

iscsiadm –m node –T targetname –p targetip:port --logout

以上是登出iSCSI目标,--logout-u是等效的。

iscsiadm –m node –o [delete|new|update] –T targetname

以上是删除/新增/更新iSCSI目标。

3       小结

Linux工作站通过iSCSI协议访问WSS2008或者WS2012,均可以正常工作的。

需要注意的是,建议WSS2008或者WS2012均不要选择“启用CHAP”,否则Linux工作站访问时会鉴权失败。

4       参考资料

1) 《用 Windows Storage Server 2008iSCSI存储服务器》,http://technet.microsoft.com/zh-cn/ff723836.aspx

2) 《利用Windows Server 2012构建iSCSI Server》,http://wenku.baidu.com/view/ec1af8e85ef7ba0d4a733b95.html

3) iSCSI initiator的设定》,http://linux.vbird.org/linux_server/0460iscsi.php

4) Microsoft iSCSI Software Target 3.3》,http://technet.microsoft.com/zh-cn/library/gg232617

你可能感兴趣的:(iSCSI,云存储)