逻辑卷管理器(Logical Volume Manager)是AIX系统存储管理的核心技术。
AIX 采用了逻辑卷管理器(Logical Volumn Manager,LVM)和日志型文件系统的存储方式,其最大的优点是能够动态地改变文件系统的大小(增加和减少),而且文件系统可以突破单个硬盘的制约。可分配非连续空间,可以跨越多个硬盘,可以动态增大或者缩小逻辑卷的大小(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,通过光纤映射到主机之后也是物理卷,统一采用逻辑卷管理。
- # lspv
- hdisk0 00f7cd06d8def8ed rootvg active
- hdisk1 00f7cd063b845415 rootvg active
- hdisk2 none None
- hdisk3 none None
- # lspv hdisk0 查看hdisk0的属性
- PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg
- PV IDENTIFIER: 00f7cd06d8def8ed VG IDENTIFIER 00f7cd0600004c000000013b266f6271
- PV STATE: active
- STALE PARTITIONS: 0 ALLOCATABLE: yes
- PP SIZE: 512 megabyte(s) LOGICAL VOLUMES: 13
- TOTAL PPs: 558 (285696 megabytes) VG DESCRIPTORS: 2
- FREE PPs: 413 (211456 megabytes) HOT SPARE: no
- USED PPs: 145 (74240 megabytes) MAX REQUEST: 1 megabyte
- FREE DISTRIBUTION: 111..27..52..111..112
- USED DISTRIBUTION: 01..85..59..00..00
- MIRROR POOL: None
- # lspv -l hdisk0 查看在PV上分配的LV
- hdisk0:
- LV NAME LPs PPs DISTRIBUTION MOUNT POINT
- hd2 10 10 00..00..10..00..00 /usr
- hd11admin 1 1 00..00..01..00..00 /admin
- hd9var 6 6 00..00..06..00..00 /var
- hd8 1 1 00..00..01..00..00 N/A
- lg_dumplv 8 8 00..08..00..00..00 N/A
- hd4 10 10 00..00..10..00..00 /
- livedump 1 1 00..01..00..00..00 /var/adm/ras/livedump
- hd5 1 1 01..00..00..00..00 N/A
- hd6 16 16 00..16..00..00..00 N/A
- hd10opt 1 1 00..00..01..00..00 /opt
- oralv 60 60 00..60..00..00..00 /u01
- hd3 30 30 00..00..30..00..00 /tmp
- hd1 10 10 00..00..10..00..00 /home
- # lspv -p hdisk0 查看PV上PP的分布情况
- hdisk0:
- PP RANGE STATE REGION LV NAME TYPE MOUNT POINT
- 1-1 used outer edge hd5 boot N/A
- 2-112 free outer edge
- 113-113 used outer middle hd6 paging N/A
- 114-121 used outer middle lg_dumplv sysdump N/A
- 122-122 used outer middle livedump jfs2 /var/adm/ras/livedump
- 123-137 used outer middle hd6 paging N/A
- 138-197 used outer middle oralv jfs2 /u01
- 198-224 free outer middle
- 225-225 used center hd8 jfs2log N/A
- 226-226 used center hd4 jfs2 /
- 227-227 used center hd2 jfs2 /usr
- 228-228 used center hd9var jfs2 /var
- 229-229 used center hd3 jfs2 /tmp
- 230-230 used center hd1 jfs2 /home
- 231-231 used center hd10opt jfs2 /opt
- 232-232 used center hd11admin jfs2 /admin
- 233-233 used center hd4 jfs2 /
- 234-237 used center hd2 jfs2 /usr
- 238-238 used center hd9var jfs2 /var
- 239-246 used center hd4 jfs2 /
- 247-251 used center hd2 jfs2 /usr
- 252-255 used center hd9var jfs2 /var
- 256-264 used center hd1 jfs2 /home
- 265-293 used center hd3 jfs2 /tmp
- 294-335 free center
- 336-446 free inner middle
- 447-558 free inner edge
- # lspv -M hdisk0 查看PP与LP的对应情况
- hdisk0:1 hd5:1
- hdisk0:2-112
- hdisk0:113 hd6:1
- hdisk0:114 lg_dumplv:1
- hdisk0:115 lg_dumplv:2
- hdisk0:116 lg_dumplv:3
- hdisk0:117 lg_dumplv:4
- hdisk0:118 lg_dumplv:5
- hdisk0:119 lg_dumplv:6
- hdisk0:120 lg_dumplv:7
- hdisk0:121 lg_dumplv:8
- hdisk0:122 livedump:1
- hdisk0:123 hd6:2
- 以下省略...
· 卷组(Volumn Group, VG)
它是系统中最大的存储单位,可以由一个或多个物理卷合并而成,是一个逻辑的概念。在一个系统中至少有一个卷组,即rootvg 卷组,它是在安装操作系统时自动创建的。如果系统中有多余的硬盘,用户也可以根据需要创建其他卷组。
卷组主要的信息有PP size、Quorum。PP size在创建时指定,或者由系统默认分配大小;QUORUM,默认全部为打开状态,如果rootvg 做了磁盘镜像,则通过"chvg –Qn rootvg"关闭quorum。
- # lsvg
- rootvg
- # lsvg -o 查看处于激活状态的VG
- rootvg
- # lsvg rootvg 查看rootvg的属性
- VOLUME GROUP: rootvg VG IDENTIFIER: 00f7cd0600004c000000013b266f6271
- VG STATE: active PP SIZE: 512 megabyte(s)
- VG PERMISSION: read/write TOTAL PPs: 1116 (571392 megabytes)
- MAX LVs: 256 FREE PPs: 834 (427008 megabytes)
- LVs: 13 USED PPs: 282 (144384 megabytes)
- OPEN LVs: 12 QUORUM: 1 (Disabled)
- TOTAL PVs: 2 VG DESCRIPTORS: 3
- STALE PVs: 0 STALE PPs: 0
- ACTIVE PVs: 2 AUTO ON: yes
- MAX PPs per VG: 32512
- MAX PPs per PV: 1016 MAX PVs: 32
- LTG size (Dynamic): 1024 kilobyte(s) AUTO SYNC: no
- HOT SPARE: no BB POLICY: relocatable
- PV RESTRICTION: none INFINITE RETRY: no
- # lsvg -p rootvg 查看rootvg卷组中的PV信息
- rootvg:
- PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
- hdisk0 active 558 413 111..27..52..111..112
- hdisk1 active 558 421 111..35..52..111..112
- # lsvg -l rootvg 查看rootvg卷组的LV信息
- rootvg:
- LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
- hd5 boot 1 2 2 closed/syncd N/A
- hd6 paging 16 32 2 open/syncd N/A
- hd8 jfs2log 1 2 2 open/syncd N/A
- hd4 jfs2 10 20 2 open/syncd /
- hd2 jfs2 10 20 2 open/syncd /usr
- hd9var jfs2 6 12 2 open/syncd /var
- hd3 jfs2 20 40 2 open/syncd /tmp
- hd1 jfs2 10 20 2 open/syncd /home
- hd10opt jfs2 1 2 2 open/syncd /opt
- hd11admin jfs2 1 2 2 open/syncd /admin
- lg_dumplv sysdump 8 8 1 open/syncd N/A
- livedump jfs2 1 2 2 open/syncd /var/adm/ras/livedump
- oralv jfs2 60 120 2 open/syncd /u01
· 物理分区(Physical Partition, PP)
每一个物理卷都可以被分割成许多个大小相等的物理分区,即物理卷由物理分区组成。在一个卷组中,所有物理分区的大小都是相等的。
物理分区是物理卷上最小的可分配单位。
· 逻辑卷(Logical Volumn, LV)
它是在一个卷组上由多个逻辑分区组成的集合,在一个卷组上可以定义一个或者多个逻辑卷。构成逻辑卷的逻辑分区所对应的物理分区可能分布
在不同的物理卷上,所以逻辑卷可以跨硬盘存在。逻辑卷是用户可以使用的逻辑存储体,用户可以直接使用逻辑卷,也可在逻辑卷上建立文件系统后再使用。
常用的LV属性主要有类型,即逻辑卷上的文件系统类型(如示例中的jfs2,或者数据库使用的raw等),还有LV的条带化信息和磁盘分布,以及是否镜像等
- # lslv hd1 查看hd1的属性
- LOGICAL VOLUME: hd1 VOLUME GROUP: rootvg
- LV IDENTIFIER: 00f7cd0600004c000000013b266f6271.8 PERMISSION: read/write
- VG STATE: active/complete LV STATE: opened/syncd
- TYPE: jfs2 WRITE VERIFY: off
- MAX LPs: 512 PP SIZE: 512 megabyte(s)
- COPIES: 2 SCHED POLICY: parallel
- LPs: 10 PPs: 20
- STALE PPs: 0 BB POLICY: relocatable
- INTER-POLICY: minimum RELOCATABLE: yes
- INTRA-POLICY: center UPPER BOUND: 32
- MOUNT POINT: /home LABEL: /home
- MIRROR WRITE CONSISTENCY: on/ACTIVE
- EACH LP COPY ON A SEPARATE PV ?: yes
- Serialize IO ?: NO
- INFINITE RETRY: no
- # lslv -l hd1 查看hd1在各个PV的分布情况
- hd1:/home
- PV COPIES IN BAND DISTRIBUTION
- hdisk0 010:000:000 100% 000:000:010:000:000
- hdisk1 010:000:000 100% 000:000:010:000:000
- # lslv -m hd1 查看hd1的LP在PV上的映射关系
- hd1:/home
- LP PP1 PV1 PP2 PV2 PP3 PV3
- 0001 0230 hdisk0 0272 hdisk1
- 0002 0256 hdisk0 0273 hdisk1
- 0003 0257 hdisk0 0274 hdisk1
- 0004 0258 hdisk0 0275 hdisk1
- 0005 0259 hdisk0 0276 hdisk1
- 0006 0260 hdisk0 0277 hdisk1
- 0007 0261 hdisk0 0278 hdisk1
- 0008 0262 hdisk0 0279 hdisk1
- 0009 0263 hdisk0 0280 hdisk1
- 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的吞吐量