AIX 7.3  mkvg コマンド(ボリュームグループ作成)のデフォルト挙動変更の確認

### はじめに


AIX 7.3 では mkvg のデフォルト挙動が変更されています。
オプションなしで ボリューム・グループ(VG) を作成すると Scalable VG が作成されます。

実機で確認した内容を記載します。
<br>

[AIX 7.3　リリース・ノート](https://www.ibm.com/docs/ja/aix/7.3?topic=notes-aix-73-release#topic_etf_prt_drb__title__1)

>・mkvg コマンドはデフォルトで、1024 個までの物理ボリューム、256 個までの論理ボリューム、32768 個までの物理区画を収容できるスケーラブル・タイプのボリューム・グループを作成します。 32 個までの物理ボリュームと 255 個までの論理ボリュームを収容できる小規模ボリューム・グループ・タイプを作成するには、-a フラグを mkvg コマンドで使用します。

>・mkvg コマンドはデフォルトでボリューム・グループにおけるデータ暗号化を有効にします。



---

### 環境

AIX 7.3 TL0 SP1

```
# oslevel -s
7300-00-01-2148
```

---

### 参考ドキュメント

* [AIX7.3 mkvg コマンド](https://www.ibm.com/docs/ja/aix/7.3?topic=m-mkvg-command)


　　->以前のバージョンにはなかった、-a オプションが存在しています。

> -a	これは、small タイプのボリューム・グループを作成します。 このタイプには最大 32 個の物理ボリュームと最大 255 個の論理ボリュームを収容できます。


　　-> AIX 7.3 では small タイプとして呼ばれるようです。


<br>

ボリューム・グループ タイプの違いでは、1つの VG で構成できる物理ボリューム数が異なります。


* [AIX 7.3 ボリューム・グループ](https://www.ibm.com/docs/ja/aix/7.3?topic=concepts-volume-groups)

> ボリューム・グループ は、さまざまなサイズおよびタイプの 1 から 32 個の物理ボリュームの集合です。

> 大きなボリューム・グループは、1 から 128 個の物理ボリュームを持つ場合があります。 スケーラブルなボリューム・グループは、最大 1024 個の物理ボリュームを 持つことができます。 各物理ボリュームは、1 システムにつき 1 つのボリューム・グループにしか属せません。 1 つのシステム内に存在し得るアクティブ・ボリューム・グループの最大数は 255 です。


<br>

PV数、Max PP数に関連して制約が存在します。

* [AIX 7.3 論理ストレージ管理の制約](https://www.ibm.com/docs/ja/aix/7.3?topic=concepts-limitations-logical-storage-management)


> LVM デバイス・サイズの制限
以下の制限は、LVM の構造上の制限です。 LVM の不良ブロックの再配置が必要である場合、PV サイズは 128 GB を 超えることができません。 特定のストレージ・デバイスのサイズ制限については、ストレージ・デバイスの資料を参照してください。

> 以下の制限は、64 ビットカーネル用です。

> オリジナル VG
PV 制限: 1GB (PP) * 16256 (PPs/PV, factor=16) = 15.9 TB
LV 制限: 1GB (PP) * 32512 (PPs/VG) = 31.8 TB
大きい VG
PV 制限: 1GB (PP) * 65024 (PPs/PV, factor=64) = 63.5 TB
LV 制限: 1GB (PP) * 130048 (PPs/VG) = 127 TB
SVG
PV & LV 制限: 128GB (PP) * 2048K (PPs/PV) = 256 PB

<br>

* [AIX FAQ集 - LVM -](https://www.ibm.com/support/pages/power-systems-aix-faq%E9%9B%86-lvm)

　　-> "VG の種類と制約" にそれぞれの制約が表でまとまっています。



* [Changing the Volume Group Factor value and Factor calculation](https://www.ibm.com/support/pages/node/6372976)

　　-> ファクター値(Max PVとPVあたりのPP数の制約) についての参考文書


----



### mkvgコマンドの確認


```
# lspv
hdisk0          00fa00d6b552f41b                    rootvg          active
hdisk1          none                                None
hdisk2          none                                None
hdisk3          none                                None
hdisk4          none                                None
```

hdisk1, hdisk2, hdisk3, hdisk4 が空のディスクです。それぞれの容量は 5GB です。


---

#### 1. mkvg -a コマンドの実行 (-a オプション指定, small vg の作成)

* hdisk1 に mkvg -a コマンドを使用して "normalvg1" という名前のVGを作成します


```
# mkvg -a -y normalvg1 hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
normalvg1
# echo $?
0
#
```

```
# lsvg normalvg1
VOLUME GROUP:       normalvg1                VG IDENTIFIER:  00cc1bd000004b000000018c851ea80a
VG STATE:           active                   PP SIZE:        8 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      637 (5096 megabytes)
MAX LVs:            256                      FREE PPs:       637 (5096 megabytes)
LVs:                0                        USED PPs:       0 (0 megabytes)
OPEN LVs:           0                        QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        yes
MAX PPs per VG:     32512
MAX PPs per PV:     1016                     MAX PVs:        32
LTG size (Dynamic): 512 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable
PV RESTRICTION:     none                     INFINITE RETRY: no
DISK BLOCK SIZE:    512                      CRITICAL VG:    no
FS SYNC OPTION:     no                       CRITICAL PVs:   no
ENCRYPTION:         yes
#
```

・PP SIZE が 8 MB
・MAX PVs が 32
・ENCRYPTION yes

　(-> ENCRYPTION yes は VG の暗号化が行われているのではなく、LV暗号化を可能にする属性です。)

---

#### 2. mkvg コマンドの実行 (VGタイプのオプション指定なし)

* hdisk2 に mkvg  コマンドを使用して "testvg" という名前のVGを作成します

```
# mkvg -y testvg hdisk2
0516-1254 mkvg: Changing the PVID in the ODM.
testvg
# echo $?
0
#
```

```
# lsvg testvg
VOLUME GROUP:       testvg                   VG IDENTIFIER:  00cc1bd000004b000000018c852041dc
VG STATE:           active                   PP SIZE:        4 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      1258 (5032 megabytes)
MAX LVs:            256                      FREE PPs:       1258 (5032 megabytes)
LVs:                0                        USED PPs:       0 (0 megabytes)
OPEN LVs:           0                        QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        yes
MAX PPs per VG:     32768                    MAX PVs:        1024
LTG size (Dynamic): 512 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable
MIRROR POOL STRICT: off
PV RESTRICTION:     none                     INFINITE RETRY: no
DISK BLOCK SIZE:    512                      CRITICAL VG:    no
FS SYNC OPTION:     no                       CRITICAL PVs:   no
ENCRYPTION:         yes
#
```

・PP SIZE が 4 MB
・MAX PVs が 1024
・ENCRYPTION yes

---


#### 3. mkvg -S コマンドの実行 (-S オプション指定, Scalable VG の作成)


* hdisk3 に mkvg -S コマンドを使用して "scalablevg" という名前のVGを作成します

```
# mkvg -S -y scalablevg hdisk3
0516-1254 mkvg: Changing the PVID in the ODM.
scalablevg
# echo $?
0
#
```

```
# lsvg scalablevg
VOLUME GROUP:       scalablevg               VG IDENTIFIER:  00cc1bd000004b000000018c85253c1c
VG STATE:           active                   PP SIZE:        4 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      1258 (5032 megabytes)
MAX LVs:            256                      FREE PPs:       1258 (5032 megabytes)
LVs:                0                        USED PPs:       0 (0 megabytes)
OPEN LVs:           0                        QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        yes
MAX PPs per VG:     32768                    MAX PVs:        1024
LTG size (Dynamic): 512 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable
MIRROR POOL STRICT: off
PV RESTRICTION:     none                     INFINITE RETRY: no
DISK BLOCK SIZE:    512                      CRITICAL VG:    no
FS SYNC OPTION:     no                       CRITICAL PVs:   no
ENCRYPTION:         yes
#
```

・PP SIZE が 4 MB
・MAX PVs が 1024
・ENCRYPTION yes

=> オプションなしと同じ属性値です。

---


#### 4. mkvg -B コマンドの実行 (-B オプションの指定, Big VG の作成)


* hdisk4 に mkvg -B コマンドを使用して "bigvg" という名前のVGを作成します


```
# mkvg -B -y bigvg hdisk4
0516-1254 mkvg: Changing the PVID in the ODM.
bigvg
# echo $?
0
#
```

```
# lsvg bigvg
VOLUME GROUP:       bigvg                    VG IDENTIFIER:  00cc1bd000004b000000018c8528bc48
VG STATE:           active                   PP SIZE:        8 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      636 (5088 megabytes)
MAX LVs:            512                      FREE PPs:       636 (5088 megabytes)
LVs:                0                        USED PPs:       0 (0 megabytes)
OPEN LVs:           0                        QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        yes
MAX PPs per VG:     130048
MAX PPs per PV:     1016                     MAX PVs:        128
LTG size (Dynamic): 512 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable
PV RESTRICTION:     none                     INFINITE RETRY: no
DISK BLOCK SIZE:    512                      CRITICAL VG:    no
FS SYNC OPTION:     no                       CRITICAL PVs:   no
ENCRYPTION:         yes
#
```


・PP SIZE が 8 MB
・MAX PVs が 128
・ENCRYPTION yes



----


### 補足: VG タイプの確認方法



VG タイプの見分け方については下記のTech Docs の表が参考になります。

[AIX LVM - Determining VG Type (SVG/Small/Big)](https://www.ibm.com/support/pages/aix-lvm-determining-vg-type-svgsmallbig)

```
Physical Volumes	　Logical Volumes　　Physical Partitions
　　　　 Default	Max	　Default	Max　	 Default	　 Max
Small	32	　 　32　　	256	　 　256	　　　32,768	　　　32,768
Big　	128	　 　128	　　 512	　 　512　	 130,048	 130,048
SVG	　　 1,024　　1,024	256	　　 4,096	　32,768	 2,097,152
```


> Now we cannot use the MAX PVs field for determining VG type.  We can still infer that vg00 is a small VG by looking at the MAX LVs and MAX PPs.  Only a small VG can have the default MAX LVs of 256 and MAX PPs of 32512.



---

AIX 7.3 の3つのタイプのVG作成を確認しました。

LVについては以下で確認しています。

https://qiita.com/c_u/items/3fa0a68ba34ab534c736


FS については以下で確認しています。

https://qiita.com/c_u/items/72b4b8f1ee58d0623799

以上、ご参考まで。