• 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
    

      

     

     

      

     

  • 相关阅读:
    linux 环境下安装oracle11g方法及安装过程中遇上的问题解决方法
    Opencv Mat的操作
    Opencv 的数据结构
    Opencv 摄像头矫正
    LM算法
    Python 正则表达式
    find grep
    Socket 入门
    Python thread
    Javascript实现页面跳转的几种方式
  • 原文地址:https://www.cnblogs.com/XYJK1002/p/4827418.html
Copyright © 2020-2023  润新知