VIOS共享存储池简介
我喜欢Power Systems,并且一直想知道为什么Power Systems没有快照和精简配置功能。 最后,随着共享存储池概念的介绍,我发现它们也已在IBM Power Systems中启用。
顾名思义,共享存储池基本上是在一组IBM VIOS实例之间共享存储资源(SAN磁盘)。 不仅像物理磁盘一样,还像共享存储池中的逻辑卷一样对它们进行切片,这被表示为逻辑单元(LU)。 LU基本上是群集存储池中存在的文件支持的存储。
VIOS的最低版本应为2.2.0.11。 我在VIOS 2.2.1.4中测试了功能。 使用当前版本的VIOS 2.2.2.1,群集中可以有16个VIOS节点,每个VIOS节点最多可以支持200个客户端。
共享存储池概念利用IBMAIX®操作系统中的Cluster Aware AIX(CAA)功能来形成VIOS集群。 使用CAA功能,群集可以监视群集中的对等方。 有关CAA的更多信息,请参考Chris Gibson的博客 。
在本文中,我将使用两个不同的物理系统上托管的两个VIOS实例。 当您浏览本文时,我们将看到有关以下任务的详细信息。
- 创建集群和共享存储池
- 验证集群状态
- 列出共享存储池属性
- 创建逻辑单元
- 将逻辑单元分配给客户端
- 修改集群
功能包括:
- 厚置备
- 精简配置
- 快照功能
- 创造
- 回滚
- 删除
要求
- IBMPowerVM®标准版
- VIOS版本2.2.0.11,修订包24,Service Pack 1和更高版本
- 至少两个磁盘:一个磁盘用于CAA存储库,另一个磁盘用于存储池。
实验室设置
图1显示了我在整个文章中用来说明此功能的实验设置。
图1.实验室环境设置
![实验室环境设置](https://i-blog.csdnimg.cn/blog_migrate/b15bb69cc44807fec4b68338e50fd3cb.png)
我们还将登录到VIOS并验证配置。
清单1.在VIOS A上
$ hostname
VIOSA
$ ioslevel
2.2.1.4
$ lspv
NAME PVID VG STATUS
hdisk0 00c858a2bde1979e rootvg active
hdisk1 00c858a2cbd45f6b None
hdisk2 00c858a2cca2a81d None
hdisk3 00c858a210d30593 None
hdisk4 00c858a210d32cfd None
$ lsvg
rootvg
$ lssp
Pool Size(mb) Free(mb) Alloc Size(mb) BDs Type
rootvg 102272 77824 128 0 LVPOOL
$
$ cluster -list
$
清单2.在VIOS B上
$ hostname
VIOSB
$ ioslevel
2.2.1.4
$ lspv
NAME PVID VG STATUS
hdisk0 00c858a2bde1979e rootvg active
hdisk1 00c9095f0f795c20 None
hdisk2 00c858a2cca2a81d None
hdisk3 00c858a210d30593 None
hdisk4 00c858a210d32cfd None
$ lsvg
rootvg
$ lssp
Pool Size(mb) Free(mb) Alloc Size(mb) BDs Type
rootvg 102272 77824 128 0 LVPOOL
$
$ cluster -list
$
我的VIOS系统中有五个磁盘,两个VIOS中的VIOS和客户端逻辑分区或LPAR(rootvg)分别使用hdisk0和hdisk1。 我们将要使用的磁盘是hdisk2,hdisk3和hdisk4。 查看所有物理卷的ID(PVID)。 它们在两个VIOS上都是相同的,这确认两个VIOS实例之间共享同一组物理磁盘。 它们的命名顺序不必相同,因为重要的是PVID。
您还需要确保群集中的VIOS节点在IP网络中可访问。 您应该能够使用/ etc / hosts或DNS来解析其主机名。
创建共享存储池
现在我们的游乐场已经准备就绪,让我们通过创建VIOS集群和共享存储池开始游戏。 这应该使用cluster命令执行,该命令初始化集群过程并创建共享存储池。
对于我们的演示集群,我将hdisk2用于CAA存储库磁盘,该磁盘包含有关集群的所有重要数据以及hdisk3和hdisk4用于共享存储池。
清单3.在VIOS A上
$ cluster -create -clustername demo1 -repopvs hdisk2 -spname demosp -sppvs
hdisk3 hdisk4 -hostname viosa
Cluster demo1 has been created successfully.
$
一旦命令成功完成,我们就可以使用cluster命令的–list
和-status
标志来验证集群的状态及其属性。
清单4.在VIOS A上
$ cluster -list
CLUSTER_NAME: demo1
CLUSTER_ID: 36618f14582411e2b6ea5cf3fceba66d
$
$ cluster -status -clustername demo1
Cluster Name State
demo1 OK
Node Name MTM Partition Num State Pool State
VIOSA 9117-MMC0206858A2 39 OK OK
$
上面在VIOS A上运行的代码告诉我们,存在一个名为demo1的群集,该群集创建了群集ID 36618f14582411e2b6ea5cf3fceba66d 。 该群集ID是所创建的每个群集的唯一标识符。 命令集群状态指示集群的状态,指示集群是否处于运行状态或其中是否有任何问题。 它还提供有关物理系统的有用信息(例如型号类型,序列号和托管VIOS的分区ID)。
我们还可以使用诸如lscluster
类的CAA命令来查看集群的状态,以确保其可运行。
清单5.在VIOS A上
$ lscluster -m
Calling node query for all nodes
Node query number of nodes examined: 1
Node name: VIOSA
Cluster shorthand id for node: 1
uuid for node: 365731ea-5824-11e2-b6ea-5cf3fceba66d
State of node: UP NODE_LOCAL
Smoothed rtt to node: 0
Mean Deviation in network rtt to node: 0
Number of clusters node is a member in: 1
CLUSTER NAME TYPE SHID UUID
demo1 local 36618f14-5824-11e2-b6ea-5cf3fceba66d
Number of points_of_contact for node: 0
Point-of-contact interface & contact state
n/a
$
到目前为止,我们仅验证集群,存储池在哪里? cluster命令既不会显示使用cluster命令创建的共享存储池,也不会显示lssp
命令。
要查看共享存储池,我们需要使用VIOS的老式lssp
命令,该命令用于列出存储池,但带有特殊标志–clustername 。
列出群集中可用的共享存储池的命令格式为lssp -clustername <NAME>
。
清单6.在VIOS A上
$ lspv
NAME PVID VG STATUS
hdisk0 00c858a2bde1979e rootvg active
hdisk1 00c858a2cbd45f6b None
hdisk2 00c858a2cca2a81d caavg_private active
hdisk3 00c858a210d30593 None
hdisk4 00c858a210d32cfd None
$ lssp
Pool Size(mb) Free(mb) Alloc Size(mb) BDs Type
rootvg 102272 77824 128 0 LVPOOL
$ lsvg
rootvg
caavg_private
$ lssp -clustername demo1
POOL_NAME: demosp
POOL_SIZE: 102144
FREE_SPACE: 100391
TOTAL_LU_SIZE: 0
TOTAL_LUS: 0
POOL_TYPE: CLPOOL
POOL_ID: 00000000097938230000000050E9B08C
$
在上面的输出中,您可以看到共享存储池的名称为demosp ,共享存储池的总大小为100 GB,可用空间为100391 MB。 您还可以看到指向LU的数量和LU的总大小为0的字段,因为到目前为止我们还没有创建任何LU。 共享存储池除了具有唯一的群集ID之外,还具有唯一的标识符。
您可能还需要注意,与共享存储池一起创建了一个名为caavg_private
的新卷组(VG)。 该VG特定于CAA,并且作为该VG一部分的磁盘存储重要数据,以保持群集的活动和运行。 您不应将此VG用于任何其他目的。
逻辑单元
如本文开头所述, 逻辑单元(LU)是文件支持的存储设备,可以作为虚拟SCSI(VSCSI)磁盘支持设备提供给VIOS客户端。
现在,我们需要在共享存储池的顶部创建一个LU。 在VIOS A中,我们已经创建了vhost0连接,lparA通过该连接为其rootvg获取物理硬盘。
清单7.在VIOS A上
$ lsmap -all
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost0 U9117.MMC.06858A2-V39-C3 0x0000000f
VTD LPARA_RVG
Status Available
LUN 0x8100000000000000
Backing device hdisk1
Physloc U78C0.001.DBJ0379-P2-C3-T1-W500507680120D9ED-L1000000000000
Mirrored false
$
现在,所有设置使我们可以从共享存储池为客户端LPAR A创建LU。 LU也将与存储池顶部的LV或文件支持的备份设备相同。 我们用于创建该命令的命令与VIOS命令mkbdsp相同,但带有一些其他标志。
清单8.在VIOS A上
$ mkbdsp -clustername demo1 -sp demosp 20G -bd lparA_lu1
Lu Name:lparA_lu1
Lu Udid:2f4adc720f570eddac5dce00a142de89
$
在上面的输出中,我首先使用了mkbdsp
命令来创建LU。 我在demosp上创建了大小为20 GB的LU(尚未映射到任何客户端)。 要映射它,您需要再次使用mkbdsp
命令,如清单9所示。
清单9.在VIOS A上
$ mkbdsp -clustername demo1 -sp demosp -bd lparA_lu1 -vadapter vhost0 -tn lparA_datavg
Assigning file "lparA_lu1" as a backing device.
VTD:lparA_datavg
$
请注意,由于LU已存在,因此在此未提及大小。 此命令会将LU lparA_lu1
映射到具有VTD名称lparA_datavg的vhost0 。
无需执行两个步骤(一个用于创建,一个用于分配给客户端),我们可以在一个命令中执行这两个操作,如以下输出所示。 在此之前,我将必须删除刚刚映射的LU lparA_lu1支持的VTD lparA_datavg 。 我们可以将常规rmvdev用于VTD,将rmbdsp用于LU。
清单10.在VIOS A上
$ rmvdev -vtd lparA_datavg
lparA_datavg deleted
$ rmbdsp -clustername demo1 -sp demosp -bd lparA_lu1
Logical unit lparA_lu1 with udid "a053cd56ca85e1e8c2d98d00f0ab0a0b" is removed.
$
现在,我将在一个命令中创建并映射LU,如以下输出所示。
清单11.在VIOS A上
$ mkbdsp -clustername demo1 -sp demosp 20G -bd lparA_lu1 -vadapter vhost0 -tn lparA_datavg
Lu Name:lparA_lu1
Lu Udid:c0dfb007a9afe5f432b365fa9744ab0b
Assigning file "lparA_lu1" as a backing device.
VTD:lparA_datavg
$
在创建和映射LU时,客户端应能够将LU视为磁盘。 我们将一次验证VIOS A中的LU和映射,然后移至作为VIOS A客户端的客户端lparA。
lssp
命令可用于列出共享存储池中的后备设备。
清单12. VIOS A上
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN c0dfb007a9afe5f432b365fa9744ab0b
$
清单13中的以下输出(以粗体显示)显示了lparA_lu1 LU映射到vhost0上的lparA客户端。
清单13.在VIOS A上
$ lsmap -all
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost0 U9117.MMC.06858A2-V39-C3 0x0000000f
VTD LPARA_RVG
Status Available
LUN 0x8100000000000000
Backing device hdisk1
Physloc U78C0.001.DBJ0379-P2-C3-T1-W500507680120D9ED-L1000000000000
Mirrored false
VTD lparA_datavgStatus AvailableLUN 0x8200000000000000Backing device lparA_lu1.c0dfb007a9afe5f432b365fa9744ab0bPhyslocMirrored N/A
$
在客户机lparA上,我们已经有一个rootvg使用的物理卷。 现在,新磁盘应该可供客户端使用。 我们将尝试配置提供给客户端的LU。
清单14.在lparA上
lparA#hostname
lparA
lparA#lspv
hdisk0 00c858a2cbd45f6b rootvg active
lparA#cfgmgr
lparA#lspv
hdisk0 00c858a2cbd45f6b rootvg active
hdisk1 none None
# lscfg -vpl hdisk1
hdisk1 U9117.MMC.06858A2-V15-C2-T1-L8200000000000000 Virtual SCSI Disk Drive
PLATFORM SPECIFIC
Name: disk
Node: disk
Device Type: block
#
我们做到了! 现在,客户端可以将LU作为虚拟SCSI磁盘驱动器使用。
快照和还原
到目前为止,我们已经使用单个VIOS建立了一个共享存储池,创建了一个逻辑单元,并将LU分配给了lparA客户端。
现在,让我们专注于客户端上的一些VG操作,以探索共享存储池的快照功能。 使用提供给lparA的新LU,我将在其之上创建一个卷组(datavgA)和一个名为/ datafsA的文件系统。
清单15.在lparA上
lparA#mkvg -y datavgA hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
datavgA
lparA#crfs -v jfs2 -m /datafsA -g datavgA -a size=2G
File system created successfully.
2096884 kilobytes total disk space.
New File System size is 4194304
lparA#
lparA#mount /datafsA
lparA#cd /datafsA
lparA#touch file_lparA
lparA#ls
file_lparA lost+found
lparA#
现在,我们将创建两个文件。 一个名为before_snap的快照,之后我将对其进行快照,然后再命名一个after_snap 。 我们还将还原快照以进行演示。
清单16.在lparA上
lparA#touch before_snap
lparA#ls
before_snap file_lparA lost+found
lparA#pwd
/datafsA
lparA#
现在在VIOS A上拍摄快照。
捕获快照的命令是:
快照-clustername <集群名称> -spname <Shared_Pool_Name> -luudid <ID>-创建SNAP_NAME
清单17.在VIOS A上
$ snapshot -clustername demo1 -create lparA_lu1_SNAP1 -spname demosp -lu lparA_lu1
lparA_lu1_SNAP1
$
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
Snapshot
lparA_lu1_SNAP1
$
上面的代码清单中的lssp
命令指示存在与lparA_lu1 LU相关联的名为lparA_lu1_SNAP1的快照。
现在,我们将在lparA客户端中再创建一个名为after_snap的文件。
清单18.在lparA上
lparA#pwd
/datafsA
lparA#touch after_snap
lparA#ls
after_snap before_snap file_lparA lost+found
lparA#cd
lparA#umount /datafsA
lparA#varyoffvg datavgA
lparA#
现在,我已经更改了带有数据的卷组。 始终建议使资源脱机,以防您要还原某些数据。 您应该根据自己的经验熟悉它。
让我们尝试还原lparA_lu1_SNAP1快照,并查看客户端的卷组中存在哪些数据。
清单19.在VIOS A上
$ snapshot -clustername demo1 -rollback lparA_lu1_SNAP1 -spname demosp -lu lparA_lu1
$
清单20.在lparA上
lparA#varyonvg datavgA
lparA#mount /datafsA
Replaying log for /dev/fslv00.
lparA#ls -l /datafsA
total 0
-rw-r--r-- 1 root system 0 Jan 6 23:27 before_snap
-rw-r--r-- 1 root system 0 Jan 6 23:24 file_lparA
drwxr-xr-x 2 root system 256 Jan 6 23:23 lost+found
lparA#
恢复快照并将卷组重新联机后,将没有名为after_snap的文件。 这是因为文件是在快照之后创建的。 现在我们回滚了快照,该快照不存在。
如果要删除快照,可以使用snapshot
命令,如下面的清单所示。
清单21.在VIOS A上
$ snapshot -clustername demo1 -delete lparA_lu1_SNAP1 -spname demosp -lu lparA_lu1
$
修改集群
到目前为止,我们执行的操作仅在VIOS A和lparA上执行。 我们创建的集群也是单节点集群。 您可以问我,什么是单节点群集?如何? 嗯,这就是AIX的CAA功能所规定的。 集群也可以使用单个节点创建。
让我们通过在另一个CEC上添加第二个VIOS实例VIOS B来扩展集群demo1 。
清单22.在VIOS A上
$ cluster -addnode -clustername demo1 -hostname viosb
Partition VIOSB has been added to the demo1 cluster.
$
上面的命令已将VIOS B添加到集群中。 让我们使用cluster -status命令进行验证。
清单23.在VIOS A上
$ cluster -status -clustername demo1
Cluster Name State
demo1 OK
Node Name MTM Partition Num State Pool State
VIOSA 9117-MMC0206858A2 39 OK OK
VIOSB 9119-59502839095F 3 OK OK
$
如果看到上面的输出,则清楚地表明VIOS A和VIOS B托管在两个不同的物理系统上,现在它们都是VIOS集群demo1的一部分。
现在,我们可以移至VIOS B并检查我们在VIOS A上所做的整个配置是否确实反映在VIOS B中。
清单24.在VIOS B上
$ hostname
VIOSB
$ cluster -list
CLUSTER_NAME: demo1
CLUSTER_ID: 36618f14582411e2b6ea5cf3fceba66d
$ lscluster -m
Calling node query for all nodes
Node query number of nodes examined: 2
Node name: VIOSA
Cluster shorthand id for node: 1
uuid for node: 365731ea-5824-11e2-b6ea-5cf3fceba66d
State of node: UP
Smoothed rtt to node: 7
Mean Deviation in network rtt to node: 3
Number of clusters node is a member in: 1
CLUSTER NAME TYPE SHID UUID
demo1 local 36618f14-5824-11e2-b6ea-5cf3fceba66d
Number of points_of_contact for node: 2
Point-of-contact interface & contact state
dpcom UP RESTRICTED
en3 UP
------------------------------
Node name: VIOSB
Cluster shorthand id for node: 2
uuid for node: a9d1aeee-582d-11e2-bda1-5cf3fceba66d
State of node: UP NODE_LOCAL
Smoothed rtt to node: 0
Mean Deviation in network rtt to node: 0
Number of clusters node is a member in: 1
CLUSTER NAME TYPE SHID UUID
demo1 local 36618f14-5824-11e2-b6ea-5cf3fceba66d
Number of points_of_contact for node: 0
Point-of-contact interface & contact state
n/a
$
$ lssp -clustername demo1
POOL_NAME: demosp
POOL_SIZE: 102144
FREE_SPACE: 100353
TOTAL_LU_SIZE: 20480
TOTAL_LUS: 1
POOL_TYPE: CLPOOL
POOL_ID: 00000000097938230000000050E9B08C
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
Snapshot
lparA_lu1_SNAP1
$
我们已经从上面的命令输出中验证了VIOS B也已连接到群集,并且共享存储池demosp在VIOS B上可用。我尝试将LU lparA_lu1映射到连接到VIOS B的客户端lparB。
清单25.在VIOS B上
$ lsmap -all
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost0 U9119.595.839095F-V3-C2 0x00000004
VTD lparB_RVG
Status Available
LUN 0x8100000000000000
Backing device hdisk1
Physloc U5791.001.99B0PA1-P2-C02-T1-W500507680110D9E3-L1000000000000
Mirrored false
$
$ mkbdsp -clustername demo1 -sp demosp -bd lparA_lu1 -vadapter vhost0 -tn lparB_datavgA
Assigning file "lparA_lu1" as a backing device.
VTD:datavgA
$
lsmap -all
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost0 U9119.595.839095F-V3-C2 0x00000004
VTD lparB_RVG
Status Available
LUN 0x8100000000000000
Backing device hdisk1
Physloc U5791.001.99B0PA1-P2-C02-T1-W500507680110D9E3-L1000000000000
Mirrored false
VTD lparB_datavgA
Status Available
LUN 0x8200000000000000
Backing device lparA_lu1.687f8420bbeee7a5264ce2c6e83d3e66
Physloc
Mirrored N/A
$
是的,我能够同时将相同的LU成功映射到lparA和lparB。 现在,我可以登录到lparB,查看它是否对客户端操作系统可见该磁盘。
清单26.在LPAR B上
lparB#lspv
hdisk0 00c9095f0f795c20 rootvg active
hdisk1 00c858a210fdef5e None
lparB#
清单27.在LPAR A上
lparA#lspv
hdisk0 00c858a2cbd45f6b rootvg active
hdisk1 00c858a210fdef5e datavgA active
lparA#
查看上面的输出,我可以确认我们能够同时为两个客户端共享相同的LU。 请注意,两个LPAR中的PVID都相似。 现在,您可以使用该功能访问两个客户端上的磁盘。 当心数据损坏并使用正确的技术来访问磁盘,无论是具有并发或增强型并发VG的逻辑卷管理器(LVM)。
我们已经看到了如何扩展集群。 我们还将看到如何缩小集群,即从集群中删除VIOS节点。
从群集中删除VIOS之前,请确保没有从要删除的特定VIOS向任何客户端提供LU。 在本例中,我们将从集群中删除VIOSB。
清单28.在VIOS A上
$ cluster -rmnode -clustername demo1 -hostname viosb
PARTITION HAS MAPPINGS
VIOSB
Command did not complete.
$
糟糕! 命令失败。
这是因为我们尚未删除通过VIOSB提供给lparB的lparA_lu1 LU的映射。 我们可以删除VTD映射并重新运行命令或使用-f标志。 我使用–f标志,因为我知道只有一个LU映射。 使用-f标志将从该特定群集中删除使用LU创建的所有VTD设备。 如果您有多个映射,则需要验证然后继续。
清单29.在VIOS A上
$ cluster -rmnode -f -clustername demo1 -hostname viosb
Partition VIOSB has been removed from the demo1 cluster
$
如果需要将其他磁盘添加到共享存储池,则可以使用以下命令格式。 我没有额外的磁盘,所以我没有运行它。
chsp -add -clustername <集群名称> -sp <ssp_name> hdiskn
精简配置和粗配置
我们还没有解决一件事,即精简配置 。 您无需在共享存储池上专门执行或设置任何操作即可使用精简配置 。 如果您将看到lssp
命令的所有输出,则可以看到名为“ ProvisionType”的标头,并且在我们的整个演示过程中,所有LU都是精简配置的。 这是因为在共享存储池中,默认行为是精简配置。
如果你要厚置备一个LU,你需要使用专门提到它-thick
标志与mkbdsp
命令。
清单30.在VIOS A上
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
$
我们将尝试创建一个厚置备的 LU进行演示。
清单31.在VIOS A上
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
$
$ mkbdsp -clustername demo1 -sp demosp 50G -bd lparA_lu2 -vadapter
vhost0 -tn lparA_datavg_D2 -thick
Lu Name:lparA_lu2
Lu Udid:0ceaf03105d97f45ef4c595968f61cf7
Assigning file "lparA_lu2" as a backing device.
VTD:lparA_datavg_D2
$
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
lparA_lu2 51200 THICK 0ceaf03105d97f45ef4c595968f61cf7
$
$ lsmap -all
SVSA Physloc Client Partition ID
--------------- -------------------------------------------- ------------------
vhost0 U9117.MMC.06858A2-V39-C3 0x0000000f
VTD LPARA_RVG
Status Available
LUN 0x8100000000000000
Backing device hdisk1
Physloc U78C0.001.DBJ0379-P2-C3-T1-W500507680120D9ED-L1000000000000
Mirrored false
VTD lparA_datavg
Status Available
LUN 0x8200000000000000
Backing device lparA_lu1.687f8420bbeee7a5264ce2c6e83d3e66
Physloc
Mirrored N/A
VTD lparA_datavg_D2
Status Available
LUN 0x8300000000000000
Backing device lparA_lu2.0ceaf03105d97f45ef4c595968f61cf7
Physloc
Mirrored N/A
$
现在,看看上面的输出。 我们创建的新LU是一个密集配置的LU,它也已映射到客户端lparA。
精简配置可帮助您过度使用可用的存储资源。 例如,假设我们的共享存储池中有20 GB的LU和50 GB的LU。 现在假设我们有一个要求50 GB空间的客户端。 在正常的VG场景中,或者在共享存储池中使用LU的密集配置时,我们将无法满足此请求。 现在,由于我们对lparA_lu1使用了精简配置,因此可以使用客户端未使用的空间。 您还可以在下面的清单中看到lssp
命令的输出,该清单表明共享存储池中有49 GB的可用空间。
清单32.在VIOS A上
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
lparA_lu2 51200 THICK 0ceaf03105d97f45ef4c595968f61cf7
$
$ lssp -clustername demo1
POOL_NAME: demosp
POOL_SIZE: 102144
FREE_SPACE: 49150
TOTAL_LU_SIZE: 71680
TOTAL_LUS: 2
POOL_TYPE: CLPOOL
POOL_ID: 00000000097938230000000050E9B08C
$ mkbdsp -clustername demo1 -sp demosp 50G -bd testlu1 -thick
Storage Pool subsystem operation, unable to create LU.
Storage Pool subsystem operation, not enough space in the pool.
$ mkbdsp -clustername demo1 -sp demosp 50G -bd testlu1
Lu Name:testlu1
Lu Udid:9e75b355e376eb81914df20bfb6c07f1
$
我尝试创建50 GB的密集配置的LU,但由于空间不足而失败,而没有–thick标志的命令由于精简配置而成功。
使用精简配置还存在过度使用存储资源的风险。 尽管这是虚拟化的优势,但是如果您无法控制使用限制,也会给您带来风险。 假设所有客户开始占用分配给他们的任何东西的情况。 在这种情况下,如果LU是精简配置的,那么最终将导致客户端LVM写错误的问题,因为在过量使用共享存储池时,没有可用的实际块来支持。
为解决此问题,您可以使用共享存储池的警报功能,以在共享存储池的硬使用超过阈值限制的情况下通知系统管理员。
清单33.在VIOS A上
$ alert -set -clustername demo1 -spname demosp -type threshold -value 75
$ Pool freespace is 47 percent.
$ alert -list -clustername demo1 -spname demosp -type threshold
PoolName: demosp
PoolID: 00000000097938230000000050E9B08C
ThresholdPercent: 75
$ alert -unset -clustername demo1 -spname demosp -type threshold
$
在查看了清单31,其中两个LU映射到一个客户端之后,可能会想到一个问题,即当向一个客户端提供多个LU时如何同时拍摄快照。 在存储中,我们将其称为一致性组 ,其中同时为一组卷创建快照以保持一致性。 在共享存储池中也可以这样做。
为了解释这一点,我创建了VIOS A上分配给lparA的两个LU的单个快照。
清单34.在VIOS A上
$ snapshot -clustername demo1 -create datavgA_snap -spname demosp -lu lparA_lu1 lparA_lu2
datavgA_snap
$
$ lssp -clustername demo1 -sp demosp -bd
Lu Name Size(mb) ProvisionType Lu Udid
lparA_lu1 20480 THIN 687f8420bbeee7a5264ce2c6e83d3e66
Snapshot
datavgA_snap
lparA_lu2 51200 THICK 0ceaf03105d97f45ef4c595968f61cf7
Snapshot
datavgA_snap
$
这样,我们可以通过同时创建快照来确保多个磁盘之间的一致性。
提示
- 无论是厚配置还是精简配置的逻辑单元,都无法调整大小。 您应该只将新的LU添加到客户端。 可能是将来的版本可能有一个选项,但是IBM支持人员确认不支持该选项。
- 在lspv输出中,仍可以将属于共享存储池的磁盘列为不属于任何VG的磁盘(无)。 (请参见清单6。)
- 您还可以将VIOS共享存储池与双VIOS设置一起使用,以为具有默认AIX MPIO的客户端提供冗余。 与提供冗余的传统文件支持或LV支持的存储相比,它是一个优势。
- 您只能将VSCSI与共享存储池一起使用,并且到目前为止无法使用NPIV。 不知道将来是否会支持。
- 您可以使用LU ID代替LU名称,因为在共享存储池中允许LU名称的重复。
- 我尚未完全测试警报功能,但是如果它可以正常运行,它将是一个不错的功能。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-vios-clustering/index.html