4.1A30 から非互換となる機能は以下のとおりです。
項番 | 項目 |
---|---|
1 | mmap(2)中のファイルに対する別ノードからの truncate(2), ftruncate(2), creat(2), O_TRUNC 指定の open(2) の動作変更 |
2 | GFS が予約するポート番号変更 |
3 | GFS のコマンド引数に指定できる特殊ファイル種別の変更 |
4 | sfcdf(8) のエラーメッセージの変更 |
5 | sfcfsck(8) のエラーメッセージの変更 |
6 | sfcmkfs(8) の -o specific_options オプションに指定されたパラメタのチェック強化 |
7 | ファイルへの書き込み時に確保するリザーブ領域サイズの変更 |
8 | 同時にオープンできるファイル数制限の追加 |
9 | 多ファイルアクセス時の iノードキャッシュ解放機能追加 |
10 | マウントオプション atime 指定時の動作の変更 |
11 | ソケットの作成不可 |
12 | 名前つきパイプの作成不可 |
GFS : Global File Services
非互換内容
GFS 共用ファイルシステム上のファイルを mmap(2) 中に、他ノードから同じファイルに対して以下のシステムコールを発行した場合の動作を変更しました。
truncate(2)
ftruncate(2)
creat(2)
O_TRUNC指定のopen(2)
移行前:正常終了
移行後:異常終了 (復帰値:-1、errno:EBUSY)
対処方法
代替方法はありません。
非互換内容
GFS が予約する (/etc/services ファイルに登録する) ポート番号を変更しました。
移行前:9200~9300
移行後:9200~9263, 9300
対処方法
対処は不要です。
非互換内容
以下のコマンドにおいて指定可能な特殊ファイルの種別を変更しました。
sfcdf(8)
sfcfsck(8)
sfcmkfs(8)
sfcadm(8)
sfcgetconf(8)
sfcnode(8)
sfcsetup(8)
移行前:キャラクタ特殊ファイルを指定します。
移行後:ブロック特殊ファイルを指定します。キャラクタ特殊ファイルは指定できません。
対処方法
上記のコマンドの引数に特殊ファイルを指定する場合、ブロック特殊ファイルを指定してください。キャラクタ特殊ファイルを指定した場合、コマンドはエラーメッセージを出力し、異常終了します。
非互換内容
sfcdf(8) コマンドにおいて、以下の条件のときに出力されるエラーメッセージを変更しました。
1) -mオプションを指定する。かつ、
2-1) 引数に存在しない特殊ファイル名を指定した場合。または、
2-2) 引数に GFS 共用ファイルシステム以外の特殊ファイル名を指定した場合。
移行前:
2-1) の場合
sfcdf: ERROR: cannot open special: errmsg
2-2) の場合
sfcdf: ERROR: invalid device: special
移行後:
sfcdf: ERROR: special is not a sfcfs file system
対処方法
ありません。
非互換内容
sfcfsck(8) コマンドにおいて、以下の条件のときに出力されるエラーメッセージを変更しました。
引数に GFS 共用ファイルシステム以外の特殊ファイル名を指定した場合。
移行前:
device-name is not for sfcfs
移行後:
Can't check device-name
対処方法
ありません。
非互換内容
以下の条件の場合の sfcmkfs(8) の動作を変更しました。
1) 以下の -o specific_options オプションのいずれかを指定する。
free=n
logsz=n
maxnode=n
metasz=n
mfree=n
nbpi=n
nblkpexty=n
2) n の先頭文字が数字である。かつ、
3) n の 2文字目以降に数字以外の文字が含まれる場合。
移行前:
文字列 n 内の、先頭文字から連続する数字だけの文字列をパラメタとして認識します。
例) "-o free=9a0" は、"-o free=9" とみなします。
移行後:
以下のエラーメッセージを出力し、異常終了します。
sfcmkfs:ERROR: Illegal option : value
対処方法
正しい (数字だけの) パラメタを指定してください。
非互換内容
GFS 共用ファイルシステム上のファイルに対して書き込み処理を実行したときに、ノード単位で確保するリザーブ領域のサイズを増やしました。この変更により、書き込み実行後、df(1), sfcdf(8), statfs(2) で取得される使用中データ領域が増加します。
以下に、作成直後の GFS 共用ファイルシステム上に、1キロバイトのファイルを作成した場合の、df(1) 出力結果を示します。
移行前:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sfdsk/c1/dsk/vol1 56569128 5200 50907016 1% /mnt/gfs1 |
移行後:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/sfdsk/c1/dsk/vol1 56569128 20480 50891736 1% /mnt/gfs1 |
リザーブ領域は、使用中データ領域 (Used) と判断されるため増加し、使用可能領域 (Available) は、減少しています。
対処方法
対処は不要です。
非互換内容
1つの GFS 共用ファイルシステム上で、5000個の異なるファイルがオープンされているとき、5001個目のファイルに対する open(2) または creat(2) を発行した場合の動作を変更しました。
移行前:正常終了
移行後:異常終了 (復帰値:-1、errno:ENFILE)
対処方法
/var/log/messages に、以下のメッセージが出力されているかどうかを確認してください。
kernel: VFS: file-max limit number reached |
出力されていない場合は、open(2) または creat(2) でオープンしようとしたファイルが存在する GFS 共用ファイルシステム上で、すでに 5000個のファイルがオープンされています。
GFS 共用ファイルシステム上でオープンされているファイルの内、クローズできるファイル (処理済のファイル) があれば、close(2) を発行してください。
GFS 共用ファイルシステム上で、5000個を超えるファイルをオープンする必要がある場合は、オープン対象ファイルを、複数の GFS 共用ファイルシステムに分散して配置してください。
非互換内容
MDS が保持している iノードキャッシュ数が 30000個 (累計) を超えた場合、22000個 (累計) になるまで iノードキャッシュを解放する機能を追加しました。
移行前:
MDS が保持している iノードキャッシュの解放は行っていません。
移行後:
MDS が保持している iノードキャッシュ数が 30000個を超えた場合、以下のメッセージを出力し、iノードキャッシュの解放処理を開始します。
NOTICE: sfcfs_mds:3020: mountpoint: The total number of vnodes used reached the upper bound. vnodes used=totalnum: upper bound=30000: lower bound=22000 |
MDS が保持している iノードキャッシュ数が 22000個となった時点で以下のメッセージを出力し、iノードキャッシュの解放処理を終了します。
NOTICE: sfcfs_mds:3021: mountpoint: The total number of vnodes used(=totalnum) is the lower bound(=22000). |
対処方法
特に対処は必要ありません。
ただし、iノードキャッシュの解放処理は、ファイルシステムに対するアクセス性能に影響を及ぼすので、メッセージ“NOTICE: sfcfs_mds:3020”が出力されてから“NOTICE: sfcfs_mds:3021”が出力されるまでの間は、最低限必要なファイルアクセスにとどめてください。
非互換内容
マウントオプション atime 指定時の動作を変更しました。
移行前:
ファイルの最終参照時刻を、ファイルアクセスのたびに更新します。
移行後:
以前のファイルの最終参照時刻が、最終修正時刻または最終変更時刻より古いか同じ場合、ファイルの最終参照時刻を更新します。また、以前のファイルの最終参照時刻が1日以上古い場合も更新します。
対処方法
移行前と同じ動作にする場合は、/etc/fstab に記載されているマウントオプション atime を strictatime に変更してください。
非互換内容
mknod(2) の第 2 引数に S_IFSOCK を指定して、GFS 共用ファイルシステム上にソケットを作成したときの動作を変更しました。
移行前:正常終了
移行後:異常終了 (復帰値:-1、errno:EPERM)
対処方法
代替方法はありません。
非互換内容
mknod(2) の第 2 引数に S_IFIFO を指定して、GFS 共用ファイルシステム上に名前つきパイプを作成したときの動作を変更しました。
移行前:正常終了
移行後:異常終了 (復帰値:-1、errno:EPERM)
対処方法
代替方法はありません。