今天学习到了如何将linux的磁盘派给widows用,主要是用软件scsi-target-utils和iscsi-initiator,在linux安装scsi-target-utils,在widows安装iscsi-initiator。windows安装iscsi-initiator很容易,下载.exe安装就行了,下面介绍如何在linux redhat5 安装scsi-target-utils。另外还写了如果用dd生成一个自己想要大小的文件,将文件虚拟成一个磁盘来用,同时还提到怎样将零散的磁盘合并起来用。
********************************************************************************************
**************************** 安裝Target Server redhat5 或者Centos5**************************
---------------------
rpm -ivh perl-Config-General-2.40-1.el5.rf.noarch.rpm
rpm -ivh scsi-target-utils-0.0-5.20080917snap.el5.i386.rpm
或者
yum -y install perl-Config-General
yum -y install scsi-target-utils
创建两个Partition给Initiator用
fdisk /dev/sda
/dev/sda5 --->第一个partition
/dev/sda6 --->第二个partition
以上两个partition无需格式化
启动/etc/init.d/tgtd start
进入/etc/init.d/tgtd/tgtd.conf,看例子完成配置,以下是命令行配置。关闭tgtd后失效。
[root@ns02 data]# rpm -ql scsi-target-utils
/usr/share/doc/scsi-target-utils-0.0/README.iscsi
//创建一个target,target id是1,target名字是iqn.test:storage01
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.test:storage01
//将sda5和sda6逻辑磁盘加到target 1中,供Initiator用。lun1 对应sda5,lun2对应sda6
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda5
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 -b /dev/sda6
//target允许IP为172.18.8.11 and 172.18.8.12 的initiators访问
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.18.8.11
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.18.8.12
//查看target 的当前配置
tgtadm --lld iscsi --op show --mode target
edit /etc/rc.local
----------------------
#iSCSI target devices setting by Adoflo (2010-01-14)
tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.test:storage01
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sda5
tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 -b /dev/sda6
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.18.8.11
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 172.18.8.12
***************redhat5 中/etc/tgt/targets.conf 的配置*******
<target iqn.test:storage01>
# List of files to export as LUNs
backing-store /dev/sda5
backing-store /dev/sda6
# Authentication :
# if no "incominguser" is specified, it is not used
#incominguser uesrname secretpasswd
# Access control :
# defaults to ALL if no "initiator-address" is specified
initiator-address 172.18.8.11 172.18.8.12
</target>
***************************************************************************************
********************************linux系统上安裝initiator*******************************
//安装iscsi-initiator-utils
rpm -ivh iscsi-initiator-utils-6.2.0.868-0.18.el5.i386.rpm
或
yum -y install iscsi-initiator-utils
//修改inititator主机的iqn
InitiatorName=iqn.test:node1
//启动服务
/etc/init.d/iscsi start
//侦测target server有哪些资源
iscsiadm -m discovery -t sendtargets -p 172.18.8.2:3260
//登入刚刚侦测出来的可用资源
iscsiadm -m node -T iqn.test:storage01 -p 172.18.8.2:3260 -l
//登出资源
iscsiadm -m node -T iqn.test:storage01 -p 172.18.8.2:3260 -u
*****************************************************************************************
*********************************建立linux虚拟盘,用文件模拟磁盘*********************************
在进行linux的实验中,如果没有多余的硬盘来做测试。则可以在linux下使用文件来模拟磁盘,以供测试目的。
其模拟过程如下所示,摘录自《Oracle数据库核心技术与实务详解-教你如何成为Oracle 10g OCP》一书。
1)以root用户创建一个ASM磁盘所在的目录。
[root@book u01]# mkdir –p /u01/asmdisks
2)通过dd命令创建6个400M大小的文件,每个文件代表一块磁盘。
[root@book u01]# cd asmdisks
[root@book asmdisks]# dd if=/dev/zero of=asm_disk1 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero of=asm_disk2 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero of=asm_disk3 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero of=asm_disk4 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero of=asm_disk5 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero of=asm_disk6 bs=1024k count=400
3)将这些文件与裸设备关联。
[root@book asmdisks]# chmod 777 asm_disk*
[root@book asmdisks]# losetup /dev/loop1 asm_disk1
[root@book asmdisks]# losetup /dev/loop2 asm_disk2
[root@book asmdisks]# losetup /dev/loop3 asm_disk3
[root@book asmdisks]# losetup /dev/loop4 asm_disk4
[root@book asmdisks]# losetup /dev/loop5 asm_disk5
[root@book asmdisks]# losetup /dev/loop6 asm_disk6
注意:如果要删除通过dd模拟出的虚拟磁盘文件的话,直接删除模拟出的磁盘文件
(也就是asm_disk1、asm_disk2…asm_disk6)还不够,
还必须执行losetup -d /dev/loopN,在这里N从1到6。否则,磁盘文件所占用的磁盘空间不能释放
***********************************************************************************************
****************************将两个虚拟盘合并成一个虚拟盘,然后可以自由决定派多少空间*************************
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 1600 1612768+ 83 Linux
/dev/sdb2 1601 3882 2300256 83 Linux
[root@maoting ~]# pvcreate /dev/sdb1 //创建逻辑磁盘
Physical volume "/dev/sdb1" successfully created
[root@maoting ~]# pvcreate /dev/sdb2 //创建逻辑磁盘
Physical volume "/dev/sdb2" successfully created
[root@maoting ~]# vgcreate firstvg /dev/sdb1 /dev/sdb2 //创建VG组,名字是firstvg,同时将/dev/sdb1 /dev/sdb2两个分区加到firstvg
Volume group "firstvg" successfully created
[root@maoting ~]# vgchange -a y firstvg
0 logical volume(s) in volume group "firstvg" now active
[root@maoting ~]# vgdisplay firstvg //查看firstvg组的信息
--- Volume group ---
VG Name firstvg
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 3.73 GB
PE Size 4.00 MB
Total PE 954
Alloc PE / Size 0 / 0
Free PE / Size 954 / 3.73 GB
VG UUID mKdQde-Zopt-PRUe-ImoG-VNxi-tnKJ-UejRKJ
[root@maoting ~]# lvcreate -L 3730 -n first3g firstvg //从firstvg里创建一个first3g盘,大小是3730M (只要在firstvg大小的范围内都可以,也就是可以随意派盘。)
Rounding up size to full physical extent 3.64 GB
Logical volume "first3g" created
[root@maoting ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.tgt1
[root@maoting ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.0.151
[root@maoting ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/firstvg/first3g //把first3g盘给target 1
[root@maoting ~]# tgtadm --lld iscsi --mode target --op show
Target 4: iqn.tgt1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00040000
SCSI SN: beaf40
Size: 0 MB
Online: Yes
Removable media: No
Backing store: No backing store
LUN: 1
Type: disk
SCSI ID: IET 00040001
SCSI SN: beaf41
Size: 3913 MB
Online: Yes
Removable media: No
Backing store: /dev/firstvg/first3g
Account information:
ACL information:
192.168.0.151
*************************************************************************************************
************************************用LVM创建linux磁盘snapshot***************************************
[root@drbd-1 ~]#
[root@drbd-1 ~]# lvcreate --size 16m --snapshot --name snap /dev/firstvg/first3g
Logical volume "snap" created
[root@drbd-1 ~]# lvscan
ACTIVE Original '/dev/firstvg/first3g' [4.88 GB] inherit
ACTIVE Snapshot '/dev/firstvg/snap' [16.00 MB] inherit
ACTIVE '/dev/VolGroup00/LogVol00' [18.88 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.00 GB] inherit
[root@drbd-1 ~]#
在192.168.0.151这台机上,只要安装iscsi-initiator就可以连到target上。至于target还有其他一些配置,大家想知道的话就自己去查了。知道的同行也可以贴出来,让大家相互学习。