CentOS iSCSI服务器搭建------LUN篇

先上服务器信息(你懂得)

[root@node ~]# cat /etc/redhat-release 
CentOS release 6.6 (Final)
[root@node ~]# uname -r
2.6.32-504.el6.x86_64
[root@node ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AD:E7:36  
          inet addr:192.168.221.130  Bcast:192.168.221.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fead:e736/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:186222 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25234 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:233390875 (222.5 MiB)  TX bytes:7363625 (7.0 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

  

我们先看一下关于LUN理解,这里引用一段通俗易懂的话解释一下:

LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。

而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了lun的概念,也就是说lun id的作用就是扩充了target id。每个target下都可以有多个lun device,我们通常简称lun device为lun,这样就可以说每个设备的描述就有原来的target X变成target x lun y了,那么显而易见的,我们描述设备的能力增强了。就好比,以前你给别人邮寄东西,写地址的时候,可以写:

xx市人民大街54号 xxx(收)

但是自从高楼大厦越来越多,你不得不这么写:

xx市人民大街54号xx大厦518室 xxx (收)

所以我们可以总结一下,LUN就是我们为了使用和描述更多设备及对象而引进的一个方法而已,一点也没什么特别的地方。

LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。

LUN的神秘之处(相对于一些新手来说)在于,它很多时候不是什么可见的实体,而是一些虚拟的对象。比如一个阵列柜,主机那边看作是一个target device,那为了某些特殊需要,我们要将磁盘阵列柜的磁盘空间划分成若干个小的单元给主机来用,于是就产生了一些什么逻辑驱动器的说法,也就是比target device级别更低的逻辑对象,我们习惯于把这些更小的磁盘资源称之为LUN0,LUN1,LUN2……什么的。而操作系统的机制使然,操作系统识别的最小存储对象级别就是LUN Device,这是一个逻辑对象,所以很多时候被称之为Logical Device。

再来一盘理解

LUN是逻辑单元号,它与iSCSI存储服务器共享。iSCSI 目标器通过TCP/IP网络共享它的物理驱动器给发起程序(initiator)。这些来自一个大型存储(SAN:Storage Area Network)的驱动器集合称作LUN。在真实环境中LUN是在LVM中定义的,因为它可以按需扩展。

为什么使用LUN

LUN用于存储,SAN存储大多数由LUN的集群来组成存储池,LUN由目标器的几块物理驱动器组成。我们可以使用LUN作为系统物理驱动器来安装操作系统,LUN可以用在集群、虚拟服务器、SAN中。在虚拟服务器中使用LUN的主要用途是作为操作系统的存储。LUN的性能和可靠性根据在创建目标存储服务器时所使用的驱动器决定。

 

1.列出所有分区列表

[root@node ~]# fdisk -l

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00012d5d

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009c78c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        4463    35840000   83  Linux
/dev/sda2            4463        5222     6102016   82  Linux swap / Solaris

2.使用/dev/sdb创建LVM

[root@node ~]# fdisk -cu /dev/sdb                                               //-c代表关闭DOS兼容模式 -u 于列出分区表时给出扇区而不是柱面的大小

Command (m for help): n                                                         //输入n创建新分区
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1                                                     //给创建的分区一个分区号
First sector (2048-41943039, default 2048):                                   //使用默认,按回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):       //使用默认,按回车
Using default value 41943039

Command (m for help): t                                                         //改变分区类型,输入t
Selected partition 1                                                            //选择分区
Hex code (type L to list codes): 8e                                             //设置LVM,看下表
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): l                                        //l查看所有文件系统类型

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1

Command (m for help): p                                       //列出分区表

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    41943039    20970496   8e  Linux LVM

Command (m for help): w                                                     //输入w写入设置
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

reboot,重启一下

查看/dev/sdb信息

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

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
213 heads, 34 sectors/track, 5791 cylinders
Units = cylinders of 7242 * 512 = 3707904 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d8676

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        5792    20970496   8e  Linux LVM

3.为LUN创建逻辑卷

[root@node ~]# pvcreate /dev/sdb1                                              //pvcreate命令创建物理卷
-bash: pvcreate: command not found                                             //没有找到命令
[root@node ~]# yum install lvm2                                                //安装lvm
[root@node ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@node ~]# vgcreate vg_iscsi /dev/sdb1                                          //用iSCSI的名字创建卷组来区分这个卷组。
  Volume group "vg_iscsi" successfully created
[root@node ~]# lvcreate -L 5G -n lv_iscsi vg_iscsi                                   //定义了4个逻辑卷
  Logical volume "lv_iscsi" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-1 vg_iscsi                                  //因此在我的iSCSI target上就会有4个LUN
  Logical volume "lv_iscsi-1" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-2 vg_iscsi
  Logical volume "lv_iscsi-2" created.
[root@node ~]# lvcreate -L 5G -n lv_iscsi-3 vg_iscsi
  Volume group "vg_iscsi" has insufficient free space (1279 extents): 1280 required.
[root@node ~]# lvcreate -L 4G -n lv_iscsi-3 vg_iscsi
  Logical volume "lv_iscsi-3" created.
[root@node ~]# pvs                                                   //列出物理卷
  PV         VG       Fmt  Attr PSize  PFree   
  /dev/sdb1  vg_iscsi lvm2 a--  20.00g 1020.00m
[root@node ~]# vgs                                                    //列出卷组
  VG       #PV #LV #SN Attr   VSize  VFree   
  vg_iscsi   1   4   0 wz--n- 20.00g 1020.00m
[root@node ~]# lvs                                                      //列出逻辑卷
  LV         VG       Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_iscsi   vg_iscsi -wi-a----- 5.00g                                                    
  lv_iscsi-1 vg_iscsi -wi-a----- 5.00g                                                    
  lv_iscsi-2 vg_iscsi -wi-a----- 5.00g                                                    
  lv_iscsi-3 vg_iscsi -wi-a----- 4.00g         

4.在Target中定义LUN

通过以上步骤,我们已经创建了逻辑卷并准备使用LUN,现在我们在Target配置中定义LUN,有这样做它才能用在客户机中(发起程序)。

VIM打开Target配置文件/etc/tgt/targets.conf

追加以下内容到该配置文件。

<target iqn.2015-09.com.node:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi
</target>
<target iqn.2015-09.com.node:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-1
</target>
<target iqn.2015-09.com.node:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-2
</target>
<target iqn.2015-09.com.node:tgt1>
       backing-store /dev/vg_iscsi/lv_iscsi-3
</target>
注释:
iSCSI有一套自己的共享target文件名的定义,基本上通过iSCSI共享出来的target文件名都是以iqn(iSCSI Qualified Name,iSCSI合格名称),iqn后面的格式如下: iqn.yyyy-mm.<翻转域名>:identifier 年 月 target名称 我的机器是www.node.com,翻转域名就是com.node  

其实,com.node中,node的名字可以随便起。。。。。。。

 

重载tgt服务配置

[root@node ~]# /etc/init.d/tgtd reload
Updating SCSI target daemon configuration:                 [确定]

验证当前可用的LUN

[root@node ~]# tgt-admin --show
Target 1: iqn.2015-09.com.node:tgt1                                                          //我们的Target
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller                                                 //默认的LUN 0是保留的
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1                                         //第一个LUN
            Type: disk                                 //磁盘                
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 5369 MB, Block size: 512             //容量
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/vg_iscsi/lv_iscsi   //磁盘实际所在的文件名
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 5369 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/vg_iscsi/lv_iscsi-1
            Backing store flags: 
        LUN: 3
            Type: disk
            SCSI ID: IET     00010003
            SCSI SN: beaf13
            Size: 5369 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/vg_iscsi/lv_iscsi-2
            Backing store flags: 
        LUN: 4
            Type: disk
            SCSI ID: IET     00010004
            SCSI SN: beaf14
            Size: 4295 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/vg_iscsi/lv_iscsi-3
            Backing store flags: 
    Account information:                  //额外的账户信息
    ACL information:                       //额外的权限限制
        ALL

OK,至此,LUN篇结束。

 

参考:

 

linux中国:https://linux.cn/   我最喜欢的linux中文网站

使用iSCSI Target创建集中式安全存储(一):https://linux.cn/article-4971-1.html

鸟哥的LINUX私房菜--服务器架设篇

存储基础知识之——磁盘阵列原理及操作实战:

http://codefine.co/%E5%88%86%E7%B1%BB/%E8%BD%AF%E4%BB%B6%E6%8A%80%E6%9C%AF/%E5%AD%98%E5%82%A8/page/4/#post-1222

  

 

 

  

 

转载于:https://www.cnblogs.com/XYJK1002/p/4827418.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值