ISCSI 存储服务器的配置与管理

本文介绍如何配置ISCSI存储服务器及客户端,包括安装所需软件、创建逻辑卷、配置ISCSI目标和客户端连接步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ISCSI 存储服务器

ISCSI服务器通常也称为Target端,负责定义存储对象,分配逻辑空间LUM(Local Unit逻辑单元),在RHEL6 服务器中需要安装scsi-target-utils软件包,对应的系统服务tgtd,命令行管理工具为 tgtadm

接下来依次讲解配置ISCSI的主要过程,准备存储设备,创建ISCSI对象,为客户机分配存储空间,客户机使用ISCSI。存储设备指将要分配给某个客户机使用的设备文件,在RHEL6系统中,硬盘,分区,逻辑卷,软RAID等都可以用作ISCSI服务的存储设备,为了延续磁盘空间的可扩展性,建议以一个逻辑卷为单位分配给客户机使用,对于个别特殊要求的客户机,也可以将一个软RAID阵列分配。

这里将Target主机一个逻辑卷作为ISCSI共享磁盘,共享给一台Linux主机使用,创建一个逻辑卷名为lvtest,将来分配给客户机使用,如下图所示(使用pvcreate,vgcreate,lvcreate创建逻辑卷lvtest)

[root@localhost ~]# lvdisplay /dev/vgtest/lvtest

  --- Logicalvolume ---

  LV Name                /dev/vgtest/lvtest

  VG Name                vgtest

  LV UUID               dmFGR8-bJfN-uK03-I774-s7z8-jkep-Px3yi2

  LV WriteAccess        read/write

  LV Status              available

  # open                 1

  LV Size                15.00 GiB

  CurrentLE             3840

  Segments               2

 Allocation             inherit

  Read aheadsectors     auto

  - currentlyset to     256

  Blockdevice           253:2

ISCSI服务器的配置步骤:

第一步:在iscis存储服务器上安装iscsi Target 软件包,如下图

[root@localhost ~]# yum -y installiscsi-initiator-utils perl-Config-General scsi-target-utils

第二步:iscsi target配置文件是/etc/tgt/targets.conf,此文件中的配置项默认全部被注释掉了,编辑该文件,实现简单的ISCSI存储服务器配置,在文件尾部添加如下内容:

<target iqn.2012-12.com.example:lvtest>

       backing-store  /dev/vgtest/lvtest

        initiator-address 192.168.1.2

<target>

若要将多个存储设培分配给客户机可以在target.conf文件中添加多个

<target……..>

…………

</target>

注:Target的命名在同一子网中应该是唯一的,标准命名方式为:

Iqn.yyyy-mm.<reversed domain name>[:identifier]

其中:

Iqn:表示ISCSI Qualified Name,简称iqn)

yyyy-mm:表示年份-月份。这里是2012-12

reversed domain name:表示倒过来的域名,这里是com.example。

identifier:表示识别代码,这里是disk

backing-store:用于指定存储设备,一般指非实际的物理磁盘,如LVM卷,某个分区,raid磁盘阵列

initiator-address地址用于将target指派给指定的客户机使用。

接下来启动tgtd服务,并设置系统启动时自动启动,iscsi通信的端口:3260/tcp,以明文传输数据

[root@localhost ~]# /etc/init.d/tgtd restart

Stopping SCSI target daemon:                               [  OK  ]

Starting SCSI target daemon:                               [  OK  ]

[root@localhost ~]# chkconfig tgtd on

[root@localhost ~]# netstat -anpult | grep tgtd

tcp       0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      4800/tgtd          

tcp       0      0 :::3260                     :::*                        LISTEN      4800/tgtd           、

 

若是ISCSI服务器上开启了防火墙可以将iptables关闭或创建允许规则,如下图所示

[root@localhost ~]# service iptables stop

iptables: Flushing firewall rules:                         [  OK  ]

iptables: Setting chains to policy ACCEPT: filter          [ OK  ]

iptables: Unloading modules:                               [  OK  ]

[root@localhost ~]# iptables -I INPUT -p tcp --dport3260 -s 192.168.1.2 -j ACCEPT

[root@localhost ~]# service iptables save

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

运行tgtadm –lld iscsi –op show –mode target查看target信息

[root@localhost ~]# tgtadm -L iscsi -o show -m target

Target 1: iqn.2012-12.com.example:lvtest

    Systeminformation:

        Driver:iscsi

        State:ready

    I_T nexus information:

    LUNinformation:

        LUN: 0

           Type: controller

            SCSIID: IET     00010000

            SCSISN: beaf10

           Size: 0 MB, Block size: 1

           Online: Yes

           Removable media: No

           Readonly: No

           Backing store type: null

           Backing store path: None

           Backing store flags:

        LUN: 1

           Type: disk

            SCSIID: IET     00010001

            SCSISN: beaf11

           Size: 16106 MB, Block size: 512

           Online: Yes

           Removable media: No

           Readonly: No

           Backing store type: rdwr

           Backing store path: /dev/vgtest/lvtest

           Backing store flags:

    Accountinformation:

    ACL information:

       192.168.1.2

至此,iscsi target存储服务器配置完成,使用ISCSI Initiator就可以连接iscsi target服务器了,使用tgtadm工具创建iscsi对象时,主要命令选项如下:

-L ,–lld:指定驱动类型,如“-L iscsi”表示ISCSI存储

-o, --op:指定操作类型,如”-o new”表示创建,”-o delete”表示删除,”-o show”表示查看信息

-m, mode:指定管理目标,如”-m target”表示ISCSI对象

-T,--targetname:指定ISCSI对象的名称。

在RHEL5上iscsi客户端配置:(在RHEL6上软件包稍有区别)

第一步:安装iscsi发起端软件,iscsiinitiator-utils和lsscsi软件包

[root@localhost Server]# rpm -vihiscsi-initiator-utils-6.2.0.868-0.7.el5.i386.rpm

[root@localhost Server]# rpm -vih lsscsi-0.17-3.el5.i386.rpm

[root@localhost Server]# /etc/init.d/iscsi restart

Stopping iSCSI daemon: /etc/init.d/iscsi: line 33:15541 已杀死               /etc/init.d/iscsid stop

iscsid 已死,但 pid 文件仍存                               [确定]

Turning off network shutdown. Starting iSCSIdaemon:       [确定]

                                                          [确定]

设置 iSCSI 目标:iscsiadm: No records found!

                                                          [确定]

[root@localhost Server]# chkconfig iscsi on

第二步:查找iscsi服务器上的iscsi目标,即iscsi发现

执行iscsiadm –m discovery –t st –p iscsi服务器IP

Iscsiadm –m discovery –t sendtargets –p targetIP地址:端口号

若是默认端口3260可以省略不写

 

[root@localhost ~]# iscsiadm -m discovery -t  st -p 192.168.1.1

192.168.1.1:3260,1 iqn.2012-12.com.example:lvtest

第三步:登录服务器上的ISCSI目标,即iscsi注册

执行iscsiadm –m node –T target名称 –p targetIP地址:端口号 –login

[root@localhost ~]# iscsiadm -m node -Tiqn.2012-12.com.example:lvtest -p 192.168.1.1:3260 --login

Logging in to [iface: default, target: iqn.2012-12.com.example:lvtest,portal: 192.168.1.1,3260]

Login to [iface: default, target:iqn.2012-12.com.example:lvtest, portal: 192.168.1.1,3260]: successful

退出iscsi盘阵

执行iscsiadm –m node –T target名称 –p targetIP地址:端口号 –logout

[root@localhost ~]# iscsiadm -m node -Tiqn.2012-12.com.example:lvtest -p 192.168.1.1:3260 --logout

Logging out of session [sid: 1, target:iqn.2012-12.com.example:lvtest, portal: 192.168.1.1,3260]

Logout of [sid: 1, target:iqn.2012-12.com.example:lvtest, portal: 192.168.1.1,3260]: successful

第四步:查看/dev/disk/by-path目录中iscsi符号链接所指向的位置或fdisk –l查看磁盘情况或检查iscsi的状态:service iscsi status 或

dmesg |tail

[root@localhost ~]# dmesg | tail

sdb: Write Protect is off

sdb: Mode Sense: 49 00 00 08

SCSI device sdb: drive cache: write back

SCSI device sdb: 31457280 512-byte hdwr sectors (16106MB)

sdb: Write Protect is off

sdb: Mode Sense: 49 00 00 08

SCSI device sdb: drive cache: write back

 sdb: unknownpartition table

sd 2:0:0:1: Attached scsi disk sdb

sd 2:0:0:1: Attached scsi generic sg2 type 0

[root@localhost ~]# ls -l /dev/disk/by-path/

总计 0

lrwxrwxrwx 1root root  9 12-21 15:48ip-192.168.1.1:3260-iscsi-iqn.2012-12.com.example:lvtest -> ../../sdb

lrwxrwxrwx 1 root root 9 08-09 16:11 pci-0000:00:07.1-ide-0:0 -> ../../hdc

lrwxrwxrwx 1 root root 9 08-09 16:11 pci-0000:00:10.0-scsi-0:0:0:0 -> ../../sda

lrwxrwxrwx 1 root root 10 08-09 16:11pci-0000:00:10.0-scsi-0:0:0:0-part1 -> ../../sda1

lrwxrwxrwx 1 root root 10 08-09 16:11pci-0000:00:10.0-scsi-0:0:0:0-part2 -> ../../sda2

此时,可以使用iscsi磁盘,就好像它是本地连接硬盘驱动器

第五步:对连接的ISCSI磁盘建立LVM并实现自动挂载

未分区前显示sdb信息如下,执行fdisk –l /dev/sdb查看

[root@localhost ~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 16.1 GB, 16106127360 bytes

64 heads, 32 sectors/track, 15360 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

 

Disk /dev/sdb doesn't contain a valid partition table

在ISCSI客户机中执行fdisk /dev/sdb创建LVM类型分区并查看/dev/sdb新建分区后的信息

[root@localhost ~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 16.1 GB, 16106127360 bytes

64 heads, 32 sectors/track, 15360 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

 

   DeviceBoot      Start         End      Blocks  Id  System

/dev/sdb1              1        4769     4883440  8e  Linux LVM

/dev/sdb2           4770        9538     4883456  8e  Linux LVM为了实现磁盘扩容,在客户机上可以将连接的ISCSI磁盘创建为LVM

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2

  Physicalvolume "/dev/sdb1" successfully created

  Physicalvolume "/dev/sdb2" successfully created

[root@localhost ~]# vgcreate vg_data /dev/sdb1/dev/sdb2

  Volume group"vg_data" successfully created

[root@localhost ~]# lvcreate -L 8G -n lv_data vg_data

  /dev/cdrom:open failed: 只读文件系统

  Logical volume"lv_data" created

在建好的逻辑卷上创建文件系统

[root@localhost ~]# mkfs.ext3 /dev/vg_data/lv_data

注意:在RHEL6可以是mkfs.ext4/dev/vg_data/lv_data

创建挂载点目录并挂载

[root@localhost ~]# df -Th | grep -i "data"

/dev/mapper/vg_data-lv_data

             ext3    7.9G  147M 7.4G   2% /data

[root@localhost ~]# echo"www.benet.com">/data/a.txt

[root@localhost ~]# ls /data/

a.txt  lost+found

修改/etc/fstab文件实现自动挂载

执行blkid /dev/vg_data/lv_data获得逻辑卷lv_data的UUID

[root@localhost ~]# blkid /dev/vg_data/lv_data

/dev/vg_data/lv_data:UUID="f83b5aea-8731-41c9-90f5-c9d3255b51aa" SEC_TYPE="ext2"TYPE="ext3"

修改/etc/fstab文件自动挂载逻辑卷lv_data,如下所示

[root@localhost~]# vi/etc/fstab

UUID=f83b5aea-8731-41c9-90f5-c9d3255b51aa/data ext3 defaults,_netdev        0 0

测试自动挂载,mount –a或者重启系统后执行df –Th查看情况

注意

1.    使用blkid确定文件系统UUID并使用UUID挂载,而不是/dev/sd*设备名称。(每次引导显示的设备名称都不同,具体取决于iscsi设备通过网络进行响应的顺序,如果按设备名称挂载,这会导致使用错误的设备)

2.    在/etc/fstab中使用_netdev作为挂载选项。(这将确保客户端不会尝试挂载 文件系统,直至启用联网,否则,在引导时系统将出错)

3.    确保iscsi服务在引导时将启动

[root@localhost ~]#chkconfig iscsion

 

 

扩展ISCSI存储:

1     先在ISCSI客户机上卸除挂载并断开和ISCSI服务器连接

[root@localhost~]# umount /data/

[root@localhost~]# iscsiadm -m node -T iqn.2012-12.com.example:lvtest -p 192.168.1.1 -u

Logging out ofsession [sid: 2, target: iqn.2012-12.com.example:lvtest, portal:192.168.1.1,3260]

Logout of [sid: 2,target: iqn.2012-12.com.example:lvtest, portal: 192.168.1.1,3260]: successful

2     在ISCSI服务器上停止tgtd服务

[root@localhost~]# service tgtd stop

Stopping SCSItarget daemon:                              [  OK  ]

3     在ISCSI服务器扩容共享的逻辑卷lvtest

[root@localhost~]# vgdisplay

  --- Volume group ---

  VG Name               vgtest

  System ID            

  Format                lvm2

  Metadata Areas        4

  Metadata Sequence No  7

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               0

  Max PV                0

  Cur PV                4

  Act PV                4

  VG Size               39.97 GiB

  PE Size               4.00 MiB

  Total PE              10232

  Alloc PE / Size       3840 / 15.00 GiB

  Free PE / Size       6392 / 24.97 GiB

  VG UUID              d3l2G2-ADu0-J8J2-JDC3-2l0M-Y2hl-FRCCQA

[root@localhost~]# lvextend -L +10G /dev/vgtest/lvtest

  Extending logical volume lvtest to 25.00 GiB

  Logical volume lvtest successfully resized

4     重启ISCSI服务

[root@localhost~]# service tgtd restart

Stopping SCSItarget daemon: not running                  [FAILED]

Starting SCSItarget daemon:                              [  OK  ]

5     重启ISCSI客户机系统

6     ISCSI客户机重启后查看/dev/sdb信息

[root@localhost~]# fdisk -l /dev/sdb

 

Disk /dev/sdb: 26.8 GB, 26843545600bytes

64 heads, 32sectors/track, 25600 cylinders

Units = cylindersof 2048 * 512 = 1048576 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        4769    4883440   8e  Linux LVM

/dev/sdb2            4770        9538    4883456   8e  Linux LVM

执行fdisk命令对/dev/sdb磁盘上增加的未分配空间创建分区,分区后的信息如下:

[root@localhost~]# fdisk -l /dev/sdb

 

Disk /dev/sdb:26.8 GB, 26843545600 bytes

64 heads, 32sectors/track, 25600 cylinders

Units = cylindersof 2048 * 512 = 1048576 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1              1        4769     4883440  8e  Linux LVM

/dev/sdb2           4770        9538     4883456  8e  Linux LVM

/dev/sdb3           9539       25600    16447488  8e  Linux LVM

将/dev/sdb3转换成PV添加到vg_data卷组并扩展lv_data逻辑卷

[root@localhost~]# pvcreate /dev/sdb3

  Physical volume "/dev/sdb3"successfully created

[root@localhost~]# vgextend vg_data /dev/sdb3

  /dev/cdrom: open failed: 只读文件系统

  Attempt to close device '/dev/cdrom' which isnot open.

  Volume group "vg_data" successfullyextended

[root@localhost~]# lvextend -L +10G /dev/vg_data/lv_data

  Extending logical volume lv_data to 18.00 GB

  Logical volume lv_data successfully resized

激活逻辑卷lv_data

[root@localhost~]# vgchange -ay vg_data

  1 logical volume(s) in volume group"vg_data" now active

执行resize2fs命令使系统识别扩容后的逻辑卷

[root@localhost~]# e2fsck -f /dev/vg_data/lv_data

e2fsck 1.39(29-May-2006)

Pass 1: Checkinginodes, blocks, and sizes

Pass 2: Checkingdirectory structure

Pass 3: Checkingdirectory connectivity

Pass 4: Checkingreference counts

Pass 5: Checkinggroup summary information

/dev/vg_data/lv_data:12/1048576 files (8.3% non-contiguous), 70323/2097152 blocks

[root@localhost~]# resize2fs /dev/vg_data/lv_data

resize2fs 1.39(29-May-2006)

Resizing thefilesystem on /dev/vg_data/lv_data to 4718592 (4k) blocks.

The filesystem on/dev/vg_data/lv_data is now 4718592 blocks long.

重新挂载逻辑卷/dev/vg_data/lv_data

[root@localhost~]# mount /dev/vg_data/lv_data /data/

[root@localhost~]# df -Th

文件系统     类型    容量  已用 可用 已用% 挂载点

/dev/mapper/VolGroup00-LogVol00

              ext3     19G 4.3G   14G  25% /

/dev/sda1     ext3    99M   12M   82M 13% /boot

tmpfs        tmpfs   125M     0  125M  0% /dev/shm

/dev/hdc   iso9660   2.9G  2.9G     0 100% /media/RHEL_5.2 i386 DVD

/dev/mapper/vg_data-lv_data

              ext3    18G  151M   17G  1% /data

第六步:删除iscsi

卸载新文件系统并删除/etc/fstab中的行或对其添加批注,退出并删除iscsi目标的条目

[root@localhost~]# iscsiadm -m node -T iqn.2012-12.com.example:lvtest -p 192.168.1.1 -u

Logging out ofsession [sid: 2, target: iqn.2012-12.com.example:lvtest, portal:192.168.1.1,3260]

Logout of [sid: 2,target: iqn.2012-12.com.example:lvtest, portal: 192.168.1.1,3260]: successful

[root@localhost~]# iscsiadm -m node -T iqn.2012-12.com.example:lvtest -p 192.168.1.1 -o delete

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值