AIX 7.3 crfs (ファイルシステム作成)コマンドのデフォルト挙動変更の確認

### はじめに


AIX 7.3 では crfs コマンドのデフォルト挙動が変更されています。
オプションなしでファイルシステムを作成すると INLINE ログで作成されます。

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


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

> - crfs コマンドはデフォルトで INLINE ログ・デバイスを使用してファイルシステムを作成します。



---



### 環境


① 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 crfs コマンド](https://www.ibm.com/docs/ja/aix/7.3?topic=c-crfs-command)

> -a logname=LVName
    ログ論理ボリューム名を指定します。 指定した論理ボリュームは、新しい JFS2 のロギング・デバイスとなります。 LVName 論理ボリュームが既に存在していなければなりません。 OUTLINE キーワードを使用すれば、ターゲット・ボリューム・グループ内の既存ログ・デバイスを使用できます。 OUTLINE キーワードを使用するときに、ログ・デバイスが存在しない場合は、新規アウトライン・ログ・デバイスがボリューム・グループ内に作成されます。 INLINE キーワードを使用すれば、JFS2 ファイルシステムを持つ論理ボリュームにログを配置できます。 logsize 属性が指定されていない場合、 INLINE ログ・デバイスは、デフォルトで論理ボリューム・サイズの 0.4% になります。 <b><font color="Red">デフォルト・アクションでは、INLINE ログ・デバイスが作成されます。 </font></b>


<br>

AIX 7.1 ではデフォルト・アクションでの記載はなく、OUTLINEキーワード指定の言及はありません。

[AIX 7.1 crfs コマンド](https://www.ibm.com/docs/ja/aix/7.1?topic=c-crfs-command)

> -a logname=LVName
    ログ論理ボリューム名を指定します。 指定した論理ボリュームは、新しい JFS2 のロギング用装置となります。 LVName 論理ボリュームが既に存在していなければなりません。 デフォルトのアクションは、ターゲット・ボリューム・グループ内の既存のロギング用装置を使用することです。 キーワード INLINE を使用して、 JFS2 ファイルシステムを持つ論理ボリュームにログを入れることができます。 logsize が指定されていない場合、 INLINE ログのデフォルトは、論理ボリューム・サイズの .4% に設定されています。

---

### AIX 7.3

#### ① AIX 7.3 crfs コマンドをログのオプション指定なしで実行


ボリューム・グループ(VG) 作成　(VGタイプ指定なし)

```
# mkvg -y testvg1 hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
testvg1
```

論理ボリューム(LV) 作成　(LVタイプ指定なし)

```
# mklv -y testlv1 testvg1 10
testlv1
```

<b>AIX 7.3 ではオプション指定なしで jfs2 のLVが作成されます。</b>

<br>

ファイルシステムのマウント・ディレクトリ作成

```
# mkdir /test1
```

ファイルシステム(FS) 作成　(jfs2 タイプ指定)


```
# crfs -v jfs2 -m /test1 -d testlv1
File system created successfully.
40240 kilobytes total disk space.
New File System size is 81920
```

ファイルシステム確認

```
# lsfs -q test1
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/testlv1    --         /test1                 jfs2  81920   --         no   no
  (lv size: 81920, fs size: 81920, block size: 4096, sparse files: yes, inline log: yes, inline log size: 0.50, EAformat: v1, Quota: no, DMAPI: no, VIX: yes, EFS: no, ISNAPSHOT: no, MAXEXT: 0, MountGuard: no, LFF: no)
#
```

<b><font color="Red">-> inline log : yes で作成されました。</font></b>

ファイルシステムのログ・デバイス確認

```
# lsvg -l testvg1
testvg1:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
testlv1             jfs2       10      10      1    closed/syncd  /test1
#
```

<b><font color="Red">-> ログデバイスのLVは存在していません </font></b>


---

#### ② AIX 7.3 crfs コマンドをログのオプションを OUTLINE 指定で実行


ボリューム・グループ(VG) 作成　(VGタイプ指定なし)

```
# mkvg -y testvg2 hdisk2
0516-1254 mkvg: Changing the PVID in the ODM.
testvg2
```

論理ボリューム(LV) 作成　(LVタイプ指定なし)

```
# mklv -y testlv2 testvg2 10
testlv2
```

<b>AIX 7.3 ではオプション指定なしで jfs2 のLVが作成されます。</b>

<br>

ファイルシステムのマウント・ディレクトリ作成
```
# mkdir /test2
```


ファイルシステム(FS) 作成　(jfs2 タイプ指定)

```
# crfs -v jfs2 -m /test2 -d testlv2 -a log=OUTLINE
File system created successfully.
40752 kilobytes total disk space.
New File System size is 81920
```

ファイルシステム確認

```
# lsfs -q test2
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/testlv2    --         /test2                 jfs2  81920   --         no   no
  (lv size: 81920, fs size: 81920, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: yes, EFS: no, ISNAPSHOT: no, MAXEXT: 0, MountGuard: no, LFF: no)
#
```

<b><font color="Red">-> inline log : no で作成されました。</font></b>


ファイルシステムのログ・デバイス確認


```
# lsvg -l testvg2
testvg2:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
testlv2             jfs2       10      10      1    closed/syncd  /test2
loglv00             jfs2log    1       1       1    closed/syncd  N/A
#
```


<b><font color="Red">-> loglv00 が存在しています。 </font></b>

---

### AIX 7.1

---

#### ① AIX 7.1 crfs コマンドをログのオプション指定なしで実行


```
# oslevel -s
7100-05-09-2148
```

ボリューム・グループ(VG) 作成
(VGタイプ指定なし)

```
# mkvg -y testvg1 hdisk1
0516-1254 mkvg: Changing the PVID in the ODM.
testvg1
```

論理ボリューム(LV) 作成 (LVタイプ jfs2指定)

```
# mklv -y testlv1 -t jfs2 testvg1 10
testlv1
```

<b>AIX 7.1 では jfs2 の LV を作成するにはオプション指定が必要です。</b>

ファイルシステムのマウント・ディレクトリ作成

```
# mkdir /test1
```


ファイルシステム(FS) 作成 (jfs2 タイプ指定)

```
# crfs -v jfs2 -m /test1 -d testlv1
File system created successfully.
81712 kilobytes total disk space.
New File System size is 163840
#
```

ファイルシステム確認

```
# lsfs -q test1
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/testlv1    --         /test1                 jfs2  163840  --         no   no
  (lv size: 163840, fs size: 163840, block size: 4096, sparse files: yes, inline log: no, inline log size: 0, EAformat: v1, Quota: no, DMAPI: no, VIX: yes, EFS: no, ISNAPSHOT: no, MAXEXT: 0, MountGuard: no)
#
```

<b><font color="Red">-> inline log : no で作成されました。</font></b>

```
# lsvg -l testvg1
testvg1:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
testlv1             jfs2       10      10      1    closed/syncd  /test1
loglv00             jfs2log    1       1       1    closed/syncd  N/A
#
```

<b><font color="Red">-> loglv00 が存在しています。</font></b>


---


#### ② AIX 7.1  crfs コマンドをログのオプションを INLINE 指定で実行

ボリューム・グループ(VG) 作成 (VGタイプ指定なし)

```
# mkvg -y testvg2 hdisk2
0516-1254 mkvg: Changing the PVID in the ODM.
testvg2
```



論理ボリューム(LV) 作成 (LVタイプ jfs2指定)

```
# mklv -y testlv2 -t jfs2 testvg2 10
testlv2
```

<b>AIX 7.1 では jfs2 の LV を作成するにはオプション指定が必要です。</b>

<br>

ファイルシステムのマウント・ディレクトリ作成

```
# mkdir /test2
```


ファイルシステム(FS) 作成 (jfs2 タイプ指定)

```
# crfs -v jfs2 -m /test2 -d testlv2 -a log=INLINE
File system created successfully.
80688 kilobytes total disk space.
New File System size is 163840
```

ファイルシステム確認

```
# lsfs -q test2
Name            Nodename   Mount Pt               VFS   Size    Options    Auto Accounting
/dev/testlv2    --         /test2                 jfs2  163840  --         no   no
  (lv size: 163840, fs size: 163840, block size: 4096, sparse files: yes, inline log: yes, inline log size: 1, EAformat: v1, Quota: no, DMAPI: no, VIX: yes, EFS: no, ISNAPSHOT: no, MAXEXT: 0, MountGuard: no)
```

<b><font color="Red">-> inline log : yes で作成されました。</font></b>

```
# lsvg -l testvg2
testvg2:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
testlv2             jfs2       10      10      1    closed/syncd  /test2
```

<b><font color="Red">-> ログデバイスのLVは存在していません </font></b>

---

### まとめ

* AIX 7.3 では
・mkvg コマンドでVG のオプション指定なしでは Scalable VG が作成される
・mklv コマンドの -t オプション指定なしでは jfs2 で作成される
・crfs コマンドのオプション指定なしで INLINE ログで作成される
　crfs コマンドのオプションで "-a log=OUTLINE" を指定することで、同じVG内に jfsログ・デバイスが作成される

<br>


 * AIX 7.1 (以前のバージョン)では
・mkvg コマンドでVG のオプション指定なしでは small VG が作成される
・mklv コマンドの -t オプション指定なしでは jfs で作成されるため jfs2 タイプで作成するにはオプションで指定する。
・crfs コマンドのオプション指定なしで OUTLINE ログで作成され、同じVG内にログ・デバイスが作成される
　crfs コマンドのオプションで "-a log=INLINE" を指定することで、INLINEログで作成される
 



---

### 補足


* ファイルシステムのロギングについて

・ジャーナル・ファイルシステム (JFS)
https://www.ibm.com/docs/ja/aix/7.3?topic=types-journaled-file-system-jfs

> ファイルシステム・ロギングを使用可能にすることにより、システムはファイルのメタデータの すべての変更を、ファイルシステムの予約エリアに記録します。 実際の書き込み操作は、 メタデータに対する変更のロギングが完了した後に行われます。

ファイルシステム・ログは、システムがクラッシュした際にfsckコマンド実行でメタデータがロールバックされるというリカバリー用途などで使用されるそうです。

<br><br>

* INLINEログ、OUTLINEログ

　OUTLINE ログ(外部ログ) はボリューム・グループごとに作成されるログデバイスで、デフォルトでは同一ボリューム・グループ内のファイルシステム間で共有する。

　INLINE (インライン) ログは、JFS2ファイルシステムの同一論理ボリュームにログ領域を作成し、他のファイルシステムとはログ共用しない。
 <br>
例えば、複数のディスクからなるボリュームグループでそれぞれのディスクにファイルシステムを作成した場合、共有ログデバイスを使用するとログデバイスが存在するディスクの障害が他のファイルシステムに影響を及ぼします。
そのため、内部ログを使用してファイルシステム単位で独自にログ・デバイスを持つことで可用性を向上させることができます。





---


### ご参考

・AIX 7.3 の VG の確認

https://qiita.com/c_u/items/77616391fe1af4d8de87


・AIX 7.3 の LV の確認

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


---


ご参考まで、以上です。