逻辑卷管理器 (Logical Volume Manager) AIX 系统存储管理的核心技术。

AIX 采用了逻辑卷管理器(Logical Volumn ManagerLVM)和日志型文件系统的存储方式,其最大的优点是能够动态地改变文件系统的大小(增加和减少),而且文件系统可以突破单个硬盘的制约。可分配非连续空间,可以跨越多个硬盘,可以动态增大或者缩小逻辑卷的大小(jfs2支持)方便存储管理操作,包括文件系统的备份、分区的删除、新分区的建立和文件系统的恢复等,新的硬盘很容易动态地添加到系统。

卷组描述区 (VGDA) 描述卷组中的所有物理卷和逻辑卷的对应关系
VGDA 存在于每一个 PV 的开始处,用于描述该 PV 所属的 VG 所包含的所有 LV PV 信息。 VGDA 的存在使得每一个 VG 都可以自我描述。每个 PV VGDA 的个数随组成该 VG PV 个数的不同而不同:
VG 中包含单个 PV ,则该 PV 上有两个 VGDA
VG 中包含两个 PV ,则一个 PV 上有两个 VGDA ,另一个 PV 上有一个 VGDA
VG 中包含三个或三个以上的 PV ,则每个 PV 上都有一个 VGDA
卷组状态区 (VGSA) 记录卷组中物理卷和物理分区的状态信息,在卷组激活时,确定哪些物理分区可用
逻辑卷控制块 (LVCB) 位于每个逻辑卷开头,包含逻辑卷的信息,占用数百个字节  
LVM 管理命令就是对 VGDA 内容的更新,当一块硬盘变成 PV 时,这个硬盘开始保留一部分空间存放 VGDA 信息,当把它加入卷组中时,开始将卷组信息写入 VGDA 区域,当把它从卷组删除时,也同时清除 VGDA 数据,这个数据还存在于 AIX 系统的 ODM 库中,当导入一个卷组时,把 VGDA 信息写入 ODM ,导出时删除。  
磁盘 Quorum
Quorum 用来指定为保持系统中某个 VG 的激活状态而必须可用的 VGDA 的数目。
如果磁盘 Quorum 存在,则当系统中 >51% VGDA 可用时,这些 VGDA 所属的 VG 才能保持激活状态,否则,该 VG 将自动被 varyoff 以禁止对该 VG 的任何操作。

 ·    物理卷(Physical Volumn, PV)

每一块单独的硬盘称之为一个物理卷,系统中有多少块硬盘,就有多少个物理卷。在系统中,每一个物理卷都有一个标识符,类似于 hdisk0 hdisk1 等,存储设备上划分的 LUN ,通过光纤映射到主机之后也是物理卷,统一采用逻辑卷管理。
    
    
    
    
  1. # lspv 
  2. hdisk0          00f7cd06d8def8ed                    rootvg          active               
  3. hdisk1          00f7cd063b845415                    rootvg          active               
  4. hdisk2          none                                None                                 
  5. hdisk3          none                                None                     
  6. # lspv hdisk0                           查看hdisk0的属性 
  7. PHYSICAL VOLUME:    hdisk0                   VOLUME GROUP:     rootvg 
  8. PV IDENTIFIER:      00f7cd06d8def8ed VG IDENTIFIER     00f7cd0600004c000000013b266f6271 
  9. PV STATE:           active                                      
  10. STALE PARTITIONS:   0                        ALLOCATABLE:      yes 
  11. PP SIZE:            512 megabyte(s)          LOGICAL VOLUMES:  13 
  12. TOTAL PPs:          558 (285696 megabytes)   VG DESCRIPTORS:   2 
  13. FREE PPs:           413 (211456 megabytes)   HOT SPARE:        no 
  14. USED PPs:           145 (74240 megabytes)    MAX REQUEST:      1 megabyte 
  15. FREE DISTRIBUTION:  111..27..52..111..112                       
  16. USED DISTRIBUTION:  01..85..59..00..00                          
  17. MIRROR POOL:        None 
  18. # lspv -l hdisk0                            查看在PV上分配的LV 
  19. hdisk0: 
  20. LV NAME               LPs     PPs     DISTRIBUTION          MOUNT POINT 
  21. hd2                   10      10      00..00..10..00..00    /usr 
  22. hd11admin             1       1       00..00..01..00..00    /admin 
  23. hd9var                6       6       00..00..06..00..00    /var 
  24. hd8                   1       1       00..00..01..00..00    N/A 
  25. lg_dumplv             8       8       00..08..00..00..00    N/A 
  26. hd4                   10      10      00..00..10..00..00    / 
  27. livedump              1       1       00..01..00..00..00    /var/adm/ras/livedump 
  28. hd5                   1       1       01..00..00..00..00    N/A 
  29. hd6                   16      16      00..16..00..00..00    N/A 
  30. hd10opt               1       1       00..00..01..00..00    /opt 
  31. oralv                 60      60      00..60..00..00..00    /u01 
  32. hd3                   30      30      00..00..30..00..00    /tmp 
  33. hd1                   10      10      00..00..10..00..00    /home 
  34. # lspv -p hdisk0                            查看PV上PP的分布情况 
  35. hdisk0: 
  36. PP RANGE  STATE   REGION        LV NAME             TYPE       MOUNT POINT 
  37.   1-1     used    outer edge    hd5                 boot       N/A 
  38.   2-112   free    outer edge                                    
  39. 113-113   used    outer middle  hd6                 paging     N/A 
  40. 114-121   used    outer middle  lg_dumplv           sysdump    N/A 
  41. 122-122   used    outer middle  livedump            jfs2       /var/adm/ras/livedump 
  42. 123-137   used    outer middle  hd6                 paging     N/A 
  43. 138-197   used    outer middle  oralv               jfs2       /u01 
  44. 198-224   free    outer middle                                  
  45. 225-225   used    center        hd8                 jfs2log    N/A 
  46. 226-226   used    center        hd4                 jfs2       / 
  47. 227-227   used    center        hd2                 jfs2       /usr 
  48. 228-228   used    center        hd9var              jfs2       /var 
  49. 229-229   used    center        hd3                 jfs2       /tmp 
  50. 230-230   used    center        hd1                 jfs2       /home 
  51. 231-231   used    center        hd10opt             jfs2       /opt 
  52. 232-232   used    center        hd11admin           jfs2       /admin 
  53. 233-233   used    center        hd4                 jfs2       / 
  54. 234-237   used    center        hd2                 jfs2       /usr 
  55. 238-238   used    center        hd9var              jfs2       /var 
  56. 239-246   used    center        hd4                 jfs2       / 
  57. 247-251   used    center        hd2                 jfs2       /usr 
  58. 252-255   used    center        hd9var              jfs2       /var 
  59. 256-264   used    center        hd1                 jfs2       /home 
  60. 265-293   used    center        hd3                 jfs2       /tmp 
  61. 294-335   free    center                                        
  62. 336-446   free    inner middle                                  
  63. 447-558   free    inner edge 
  64. # lspv -M hdisk0                        查看PP与LP的对应情况 
  65. hdisk0:1        hd5:1    
  66. hdisk0:2-112 
  67. hdisk0:113      hd6:1    
  68. hdisk0:114      lg_dumplv:1      
  69. hdisk0:115      lg_dumplv:2      
  70. hdisk0:116      lg_dumplv:3      
  71. hdisk0:117      lg_dumplv:4      
  72. hdisk0:118      lg_dumplv:5      
  73. hdisk0:119      lg_dumplv:6      
  74. hdisk0:120      lg_dumplv:7      
  75. hdisk0:121      lg_dumplv:8      
  76. hdisk0:122      livedump:1       
  77. hdisk0:123      hd6:2    
  78. 以下省略... 

·    卷组(Volumn Group, VG)

它是系统中最大的存储单位,可以由一个或多个物理卷合并而成,是一个逻辑的概念。在一个系统中至少有一个卷组,即 rootvg 卷组,它是在安装操作系统时自动创建的。如果系统中有多余的硬盘,用户也可以根据需要创建其他卷组。

卷组主要的信息有PP sizeQuorumPP size在创建时指定,或者由系统默认分配大小;QUORUM,默认全部为打开状态,如果rootvg 做了磁盘镜像,则通过"chvg –Qn rootvg"关闭quorum

   
   
   
   
  1. # lsvg 
  2. rootvg 
  3. # lsvg -o                               查看处于激活状态的VG 
  4. rootvg 
  5. # lsvg rootvg                           查看rootvg的属性 
  6. VOLUME GROUP:       rootvg                   VG IDENTIFIER:  00f7cd0600004c000000013b266f6271 
  7. VG STATE:           active                   PP SIZE:        512 megabyte(s) 
  8. VG PERMISSION:      read/write               TOTAL PPs:      1116 (571392 megabytes) 
  9. MAX LVs:            256                      FREE PPs:       834 (427008 megabytes) 
  10. LVs:                13                       USED PPs:       282 (144384 megabytes) 
  11. OPEN LVs:           12                       QUORUM:         1 (Disabled) 
  12. TOTAL PVs:          2                        VG DESCRIPTORS: 3 
  13. STALE PVs:          0                        STALE PPs:      0 
  14. ACTIVE PVs:         2                        AUTO ON:        yes 
  15. MAX PPs per VG:     32512                                      
  16. MAX PPs per PV:     1016                     MAX PVs:        32 
  17. LTG size (Dynamic): 1024 kilobyte(s)         AUTO SYNC:      no 
  18. HOT SPARE:          no                       BB POLICY:      relocatable  
  19. PV RESTRICTION:     none                     INFINITE RETRY: no 
  20. # lsvg -p rootvg                            查看rootvg卷组中的PV信息 
  21. rootvg: 
  22. PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION 
  23. hdisk0            active            558         413         111..27..52..111..112 
  24. hdisk1            active            558         421         111..35..52..111..112 
  25. # lsvg -l rootvg                            查看rootvg卷组的LV信息 
  26. rootvg: 
  27. LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT 
  28. hd5                 boot       1       2       2    closed/syncd  N/A 
  29. hd6                 paging     16      32      2    open/syncd    N/A 
  30. hd8                 jfs2log    1       2       2    open/syncd    N/A 
  31. hd4                 jfs2       10      20      2    open/syncd    / 
  32. hd2                 jfs2       10      20      2    open/syncd    /usr 
  33. hd9var              jfs2       6       12      2    open/syncd    /var 
  34. hd3                 jfs2       20      40      2    open/syncd    /tmp 
  35. hd1                 jfs2       10      20      2    open/syncd    /home 
  36. hd10opt             jfs2       1       2       2    open/syncd    /opt 
  37. hd11admin           jfs2       1       2       2    open/syncd    /admin 
  38. lg_dumplv           sysdump    8       8       1    open/syncd    N/A 
  39. livedump            jfs2       1       2       2    open/syncd    /var/adm/ras/livedump 
  40. oralv               jfs2       60      120     2    open/syncd    /u01 

·    物理分区(Physical Partition, PP)

每一个物理卷都可以被分割成许多个大小相等的物理分区,即物理卷由物理分区组成。在一个卷组中,所有物理分区的大小都是相等的。
物理分区是物理卷上最小的可分配单位。
 

·    逻辑卷(Logical Volumn, LV)

它是在一个卷组上由多个逻辑分区组成的集合,在一个卷组上可以定义一个或者多个逻辑卷。构成逻辑卷的逻辑分区所对应的物理分区可能分布
在不同的物理卷上,所以逻辑卷可以跨硬盘存在。逻辑卷是用户可以使用的逻辑存储体,用户可以直接使用逻辑卷,也可在逻辑卷上建立文件系统后再使用。
常用的 LV 属性主要有类型,即逻辑卷上的文件系统类型 ( 如示例中的 jfs2, 或者数据库使用的 raw ), 还有 LV 的条带化信息和磁盘分布,以及是否镜像等 
   
   
   
   
  1. # lslv hd1                              查看hd1的属性 
  2. LOGICAL VOLUME:     hd1                    VOLUME GROUP:   rootvg 
  3. LV IDENTIFIER:      00f7cd0600004c000000013b266f6271.8 PERMISSION:     read/write 
  4. VG STATE:           active/complete        LV STATE:       opened/syncd 
  5. TYPE:               jfs2                   WRITE VERIFY:   off 
  6. MAX LPs:            512                    PP SIZE:        512 megabyte(s) 
  7. COPIES:             2                      SCHED POLICY:   parallel 
  8. LPs:                10                     PPs:            20 
  9. STALE PPs:          0                      BB POLICY:      relocatable 
  10. INTER-POLICY:       minimum                RELOCATABLE:    yes 
  11. INTRA-POLICY:       center                 UPPER BOUND:    32 
  12. MOUNT POINT:        /home                  LABEL:          /home 
  13. MIRROR WRITE CONSISTENCY: on/ACTIVE                               
  14. EACH LP COPY ON A SEPARATE PV ?: yes                                     
  15. Serialize IO ?:     NO                                      
  16. INFINITE RETRY:     no                                      
  17. # lslv -l hd1                           查看hd1在各个PV的分布情况 
  18. hd1:/home 
  19. PV                COPIES        IN BAND       DISTRIBUTION   
  20. hdisk0            010:000:000   100%          000:000:010:000:000  
  21. hdisk1            010:000:000   100%          000:000:010:000:000  
  22. # lslv -m hd1                           查看hd1的LP在PV上的映射关系 
  23. hd1:/home 
  24. LP    PP1  PV1               PP2  PV2               PP3  PV3 
  25. 0001  0230 hdisk0            0272 hdisk1             
  26. 0002  0256 hdisk0            0273 hdisk1             
  27. 0003  0257 hdisk0            0274 hdisk1             
  28. 0004  0258 hdisk0            0275 hdisk1             
  29. 0005  0259 hdisk0            0276 hdisk1             
  30. 0006  0260 hdisk0            0277 hdisk1             
  31. 0007  0261 hdisk0            0278 hdisk1             
  32. 0008  0262 hdisk0            0279 hdisk1             
  33. 0009  0263 hdisk0            0280 hdisk1             
  34. 0010  0264 hdisk0            0281 hdisk1 

·    逻辑分区(Logical Partition, LP)

它是映射物理分区的逻辑单位,所对应的物理分区是存储数据的地方。一个逻辑分区对应至少一个物理分区,如果卷组内的物理卷不存在
镜像关系,则一个逻辑分区对应一个镜像的物理;反之则可能对应多个物理分区,对应数量由镜像数决定。
hdisk0 hdisk1 分别对应 2 块硬盘,即 2 个物理卷 ( 每个划分成多个物理分区 ) ,它们合在一起组成了一个卷组 ( rootvg) ,在同一个卷组中所有的物理分区大小是一致的。
rootvg 上可以划分多个逻辑卷,每个逻辑卷由多个逻辑分区组成,由于存在镜像关系 (hdisk0 hdisk1 一份数据、一份镜像 ) ,一个逻辑分区实际对应了 2 个一样的物理分区。
 

逻辑卷管理策略

·  镜像 mirrorvg
镜像 mirror 也称做 RAID1
在建立逻辑卷时,用户可以实现逻辑卷中逻辑分区的镜像,在独立的不同硬盘中保存两个或三个副本 ( 最多只能到三个 ) ,从而保证硬盘出错时数据不受损坏而且是可用的
Parallel( 并行 )
每个副本的写请求是同时进行的,当更新时间最长的副本完成后,控制就返回给程序。执行效率很高,但当副本更新时若有硬盘错误发生,数据的完整性有可能遭到破坏,为了解决这个问题 ,Mirror Write Consistency( 镜像写一致性 ) 选项应置为 on
读操作时候,读最相近的副本,所以响应速率快
Sequential( 串行 )
当数据写到逻辑分区时,只有所有的副本都更新后控制才返回给程序,而且副本是一个个轮留更新。执行速率比并行镜像慢,但是数据完整性较好
读操作时候,总是先读主副本
 
·  条带化  Striping
做条带化也称做 RAID0
条带化把数据块均匀地分布在不同硬盘上
访问逻辑卷上的连续数据时多个硬盘驱动器并行操作,提高了 I/O 的吞吐量