はじめに
AIX 7.3 では mklv のデフォルト設定が変更されている箇所があります。
実機で確認した内容を記載します。
ファイルシステムおよび論理ボリューム・マネージャーの更新
- mklv コマンドはデフォルトで jfs2 タイプの論理ボリュームを作成します。
- mklv コマンドはデフォルトで、大規模タイプおよび拡張可能タイプのボリューム・グループについてデフォルト・ミラー書き込み整合性ポリシーとしてパッシブ・ミラー書き込み整合性を持つ論理ボリュームを作成します。
環境
① AIX 7.3 TL0 SP1
# oslevel -s
7300-00-01-2148
② AIX 7.1 TL5 SP9
# oslevel -s
7100-05-09-2148
ドキュメント確認
変更箇所、機能の概念をドキュメントで確認します。
① タイプ
AIX 7.3 では mklv コマンドはデフォルトで jfs2 タイプの論理ボリュームを作成します。
以前のバージョンでは jfs タイプの論理ボリュームがデフォルトでした。
-t type デフォルトは jfs2 です。
-t type デフォルトは jfs です。
②ミラー書き込み整合性
論理ボリュームへの書き込みの際には、LVM がすべてのミラー・コピーの書き込み要求を生成します。 ミラーリングされた書き込みの処理中 (すべてのコピーが書き込まれる前に) にシステムがクラッシュすると、 問題が発生します。 論理ボリュームのミラー書き込み整合性のリカバリーが要求された場合、 LVM はこのような整合性のないミラーのリカバリーを可能にするための追加情報を保持します。 ミラー書き込み整合性のリカバリーは、大部分のミラーリングされた論理ボリュームに対して行う必要があります。
ミラー書き込み整合性はミラーリングされたLVMのリカバリーを担保している設定ですね。
1) AIX 7.3 での mklv の確認
AIX 7.3 Big VG の場合
testvg という名前の Big VG を作成します。
# mkvg -B -y testvg hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
testvg
testlv1 というLVをtestvgに作成します。LPs は 2 です。
# mklv -y testlv1 testvg 2
testlv1
# echo $?
0
VG作成確認
# lsvg testvg
VOLUME GROUP: testvg VG IDENTIFIER: 00cc20e000004b000000018c89e1d90e
VG STATE: active PP SIZE: 8 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 380 (3040 megabytes)
MAX LVs: 512 FREE PPs: 378 (3024 megabytes)
LVs: 1 USED PPs: 2 (16 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
MAX PVs = 128、MAX LVs = 512、Max PPs per VG = 130048 のBig VG 属性で作成されています。
LV作成確認
# lslv testlv1
LOGICAL VOLUME: testlv1 VOLUME GROUP: testvg
LV IDENTIFIER: 00cc20e000004b000000018c89e1d90e.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: jfs2 #<= ここです WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 8 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 2 PPs: 2
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 128
MOUNT POINT: N/A LABEL: None
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/PASSIVE #<= ここです
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: no PREFERRED READ: 0
ENCRYPTION: no
#
=> TYPE: jfs2 と、MIRROR WRITE CONSISTENCY: on/PASSIVE で作成されています。
AIX 7.3 Scalable VG の場合
VGの作成。AIX 7.3 ではオプションなしで作成するとScalable VG になります。
# mkvg -y testvg1 hdisk1
testvg1
# echo $?
0
testlv2 というLVをtestvg1 に作成します。LPs は 2 です。
# mklv -y testlv2 testvg1 2
testlv2
# echo $?
0
VG作成確認
# lsvg testvg1
VOLUME GROUP: testvg1 VG IDENTIFIER: 00cc20e000004b000000018c89ed3653
VG STATE: active PP SIZE: 4 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 746 (2984 megabytes)
MAX LVs: 256 FREE PPs: 744 (2976 megabytes)
LVs: 1 USED PPs: 2 (8 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
MAX PVs = 1024、MAX LVs = 256、Max PPs per VG = 32768 のScalable VG 属性 で作成されています。
LV作成確認
# lslv testlv2
LOGICAL VOLUME: testlv2 VOLUME GROUP: testvg1
LV IDENTIFIER: 00cc20e000004b000000018c89ed3653.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: jfs2 #<= ここです WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 4 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 2 PPs: 2
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/PASSIVE #<= ここです
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: no PREFERRED READ: 0
DEVICESUBTYPE: DS_LVZ
COPY 1 MIRROR POOL: None
COPY 2 MIRROR POOL: None
COPY 3 MIRROR POOL: None
ENCRYPTION: no
#
=> TYPE: jfs2 と、MIRROR WRITE CONSISTENCY: on/PASSIVE で作成されています。
2) AIX 7.1 での mklv の確認
AIX 7.1 TL5 SP9 の環境で確認しました。
Big VG の場合
testvg という名前の Big VG を作成します。
# mkvg -B -y testvg hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
testvg
# echo $?
0
testlv1 というLVをtestvgに作成します。LPs は 2 です。
# mklv -y testlv1 testvg 2
testlv1
# echo $?
0
VG作成確認
# lsvg testvg
VOLUME GROUP: testvg VG IDENTIFIER: 00cc20e000004b000000018c89e1b0e6
VG STATE: active PP SIZE: 8 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 382 (3056 megabytes)
MAX LVs: 512 FREE PPs: 380 (3040 megabytes)
LVs: 1 USED PPs: 2 (16 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
MAX PVs = 128、MAX LVs = 512、Max PPs per VG = 130048 のBig VG 属性で作成されています。
LV作成確認
# lslv testlv1
LOGICAL VOLUME: testlv1 VOLUME GROUP: testvg
LV IDENTIFIER: 00cc20e000004b000000018c89e1b0e6.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: jfs #<= ここです WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 8 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 2 PPs: 2
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 128
MOUNT POINT: N/A LABEL: None
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/ACTIVE #<= ここです
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: no PREFERRED READ: 0
#
=> TYPE: jfs と、MIRROR WRITE CONSISTENCY: on/ACTIVE で作成されています。
Scalable VG の場合
testvg1 という Scalable VG を作成します。
# mkvg -S -y testvg1 hdisk1
testvg1
# echo $?
0
testlv2 というLVをtestvg1 に作成します。LPs は 2 です。
# mklv -y testlv2 testvg1 2
testlv2
# echo $?
0
VG作成確認
# lsvg testvg1
VOLUME GROUP: testvg1 VG IDENTIFIER: 00cc20e000004b000000018c89ed17d8
VG STATE: active PP SIZE: 4 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 750 (3000 megabytes)
MAX LVs: 256 FREE PPs: 748 (2992 megabytes)
LVs: 1 USED PPs: 2 (8 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
MAX PVs = 1024、MAX LVs = 256、Max PPs per VG = 32768 のScalable VG 属性で作成されています。
LV作成確認
# lslv testlv2
LOGICAL VOLUME: testlv2 VOLUME GROUP: testvg1
LV IDENTIFIER: 00cc20e000004b000000018c89ed17d8.1 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: jfs #<= ここです WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 4 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 2 PPs: 2
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
DEVICE UID: 0 DEVICE GID: 0
DEVICE PERMISSIONS: 432
MIRROR WRITE CONSISTENCY: on/ACTIVE #<= ここです
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
INFINITE RETRY: no PREFERRED READ: 0
DEVICESUBTYPE: DS_LVZ
COPY 1 MIRROR POOL: None
COPY 2 MIRROR POOL: None
COPY 3 MIRROR POOL: None
#
=> TYPE: jfs と、MIRROR WRITE CONSISTENCY: on/ACTIVE で作成されています。
ミラー書き込み整合性の考慮点
ミラー書き込み整合性はパッシブ、アクティブでそれぞれメリット・デメリットがあるため、要件に応じて値を考えることが良いのではと思います。
・AIX 7.3 ディスク・ミラーリングのパフォーマンスへの影響
(一部抜粋)
ミラーリングが使用され、ミラー書き込み整合性 (Mirror Write Consistency) がオンになっている (デフォルトにより) 場合は、 ディスクの外部領域にそのコピーを配置することを考慮してください。 lslv コマンドは通常、 ミラーリングされていない論理ボリュームについてはミラー書き込み整合性がオンになることを表示しますが、COPIES 値が 1 より大きくない限り、実際の処理が発生することはありません。 書き込み検査はデフォルトではオフです。
受動ミラー書き込み整合性 (MWC) と呼ばれる、ミラー書き込み整合性オプションが使用可能です。 ミラー書き込み整合性を確実にする デフォルトのメカニズムが、アクティブ MWC です。 アクティブ MWC により、クラッシュが 発生した後のリブート時のリカバリーが速くなります。 ただし、このメリットは書き込みのパフォーマンスを 犠牲にして得られるものであり、特に、ランダム書き込みのパフォーマンスが低下します。 アクティブ MWC を使用不可にすれば、この書き込みパフォーマンスの低下はなくなりますが、 クラッシュ後のリブートで syncvg -f コマンドを使用して ボリューム・グループ全体を手作業で同期させてからでないと、ユーザーがそのボリューム・グループに アクセスすることができません。 これを行うには、ボリューム・グループの automatic vary-on を使用不可にする必要があります。
受動 MWC を使用可能にした場合は、アクティブ MWC にからむ書き込みパフォーマンスの低下が なくなるだけでなく、区画がアクセスされているときに自動的に論理ボリュームの再同期が とられます。 これは、管理者が論理ボリュームを手動で同期したり、 automatic vary-onを無効にしたりする必要がないことを意味します。 受動 MWC の欠点としては、すべての区画の同期が取り直されるまでは、読み取り操作が遅くなるということがあります。
以下にも MWC(Mirror Write Consistency) の動きが詳しく記載されています。
AIX 7.3 論理ボリュームのミラー書き込み整合性ポリシー
ご参考
AIX 7.3 VG のデフォルト挙動変更については下記で確認しています。
FS について位は以下で確認しています。
ご参考まで、以上です。