第34章 ストレージ
キャッシュ論理ボリュームで lvconvert --repair が適切に動作するようになりました。
Red Hat Enterprise Linux 7.3 でリリースされた lvm2-2.02.166-1.el パッケージのリグレッションにより、lvconvert --repair コマンドをキャッシュ論理ボリュームで適切に実行できませんでした。その結果、
Cannot convert internal LV
エラーが発生しました。このバグを修正するために基礎となるソースコードが変更され、lvconvert --repair が期待どおりに機能するようになりました。(BZ#1380532)
LVM2 ライブラリーの非互換性によるデバイスの監視の失敗やアップグレード中の消失がなくなる
Red Hat Enterprise Linux 7.3 でリリースされた lvm2-2.02.166-1.el パッケージのバグにより、ライブラリーは以前のバージョンの Red Hat Enterprise Linux 7 と互換性がありませんでした。互換性がないと、デバイスの監視に失敗し、アップグレード中に消失する可能性がありました。その結果、デバイスの障害が見過ごされたり (RAID)、スペース不足の状態が適切に処理されなかったりする可能性がありました (thin-p)。今回の更新で非互換性が修正され、論理ボリュームの監視が想定どおりに機能するようになりました。(BZ#1382688)
be2iscsi
ドライバーエラーが原因でシステムが応答しなくなる
以前は、
be2iscsi
ドライバーエラーが原因で、オペレーティングシステムが応答しなくなることがありました。今回の更新で be2iscsi
が修正され、be2iscsi エラーが原因でオペレーティングシステムがハングしなくなりました。(BZ#1324918)
mirror
セグメントタイプが使用されている場合、lvmetad
デーモンで相互作用の問題が発生しなくなりました。
以前は、従来の
mirror
セグメントタイプを使用して、3 つ以上のレッグでミラー化論理ボリュームを作成すると、lvmetad
デーモンで相互作用の問題が発生する可能性がありました。発生した問題は、ミラー障害ポリシーがデフォルト以外の allocate
オプションに設定され、lvmetad
が使用され、デバイスの障害の間にマシンの再起動が行われなかったときに、2 番目のデバイス障害後にのみ発生しました。このバグは修正され、上述の相互作用の問題は発生しなくなりました。(BZ#1380521)
multipathd
デーモンは、ブラックリストに登録されたデバイスの誤ったエラーメッセージを表示しなくなりました。
以前は、
multipathd
デーモンは、ブラックリストに登録されたデバイスを見つけられなかった誤ったエラーメッセージを表示していたため、何も問題がない場合にユーザーにエラーメッセージが表示されていました。今回の修正により、マルチパス
は、エラーメッセージを発行する前にデバイスがブラックリストに登録されているかどうかをチェックします。(BZ#1403552)
マルチパスが、使用可能なパスがない場合にデバイスの再読み込みにフラグを立てるようになりました。
以前は、マルチパスデバイスへの最後のパスデバイスが削除されると、
lvmetad
の状態が間違っており、マルチパス上の lvm デバイスが正しく機能しなくなる可能性がありました。これは、マルチパスデバイスが再読み込みされたときに、デバイスマッパーが動作中のパスの数を知る方法がなかったためです。このため、スキャンやその他の dm
ルールを無効にするマルチパス udev
ルールは、マルチパスデバイスがデバイステーブルのリロードではなく、障害により最後に使用可能なパスを失った場合にのみ機能します。今回の修正により、使用可能なパスがない場合にマルチパスがデバイスのリロードにフラグを立てるようになりました。また、マルチパスデバイスが最後に使用可能なパスを失うたびに、マルチパス udev
ルールはスキャンやその他の dm
ルールを正しく無効にするようになりました。その結果、lvmetad
の状態は正しく残り、マルチパス上の LVM デバイスは引き続き正常に機能します。(BZ#1239173)
書き込みに失敗した後に送信される読み取り要求は、常にマルチパスデバイスで同じデータを返します。
以前は、書き込み要求が
rbd
モジュールでハングし、iSCSI イニシエーターとマルチパスレイヤーがアプリケーションへの要求の失敗を決定した場合、失敗後に送信された読み取り要求は書き込みの状態を反映しない可能性がありました。これは、複数の iSCSI ターゲットを介して Ceph rbd
イメージをエクスポートすると、書き込み要求を受信すると rbd
カーネルモジュールが排他ロックを取得するためです。今回の修正により、rbd
モジュールは読み取りおよび書き込みの両方の排他ロックを取得します。これにより、ハングした書き込みがフラッシュされ、読み取りを実行する前に失敗します。このため、書き込みに失敗した後に送信される読み取り要求は、常に同じデータを返します。(BZ#1380602)
マルチパスデバイスのパスデバイスが読み取り専用に切り替わると、マルチパスデバイスが読み取り専用に再読み込みされます。
以前は、マルチパスデバイスを再読み込みするときに、マルチパスコードは常にデバイスを最初に読み取り/書き込みで再読み込みしようとし、次に読み取り専用にフェイルバックしていました。パスデバイスがカーネルですでに読み取り/書き込みで開かれている場合、デバイスが読み取り専用モードに切り替わり、読み取り/書き込みの再読み込みが成功した場合でも、パスデバイスは読み取り/書き込みで開かれ続けます。その結果、パスデバイスが読み取り/書き込みから読み取り専用に切り替わった場合でも、マルチパスデバイスは読み取り/書き込みのままになりました (読み取り専用デバイスへのすべての書き込みが失敗した場合でも)。今回の修正により、multipathd は、パスデバイスが読み取り専用になったことを示す
uevent
を取得したときに、マルチパスデバイスを読み取り専用で再読み込みするようになりました。その結果、マルチパスデバイスのパスデバイスが読み取り専用に切り替わると、マルチパスデバイスは読み取り専用で再読み込みされます。(BZ#1431562)
ユーザーは確認されていないマルチパスデバイスの混同する可能性のある古いデータを取得しなくなる
以前は、パスデバイスが孤立している場合(マルチパスデバイスのメンバーではない)、デバイスの状態とチェッカーの状態が孤立する前のデバイスの状態の show paths コマンドで表示されていました。その結果、show paths コマンドは、チェックされなくなったデバイスの古い情報を表示していました。今回の修正により、show paths コマンドは、孤立したパスのデバイスの状態として
undef
をチェッカーの状態として表示し、ユーザーがチェックされていないデバイスの混乱を生じさせる可能性のある古いデータを取得しなくなりました。
(BZ#1402092)
失敗したパスで Prioritizer を実行すると、multipathd
デーモンがハングしなくなりました。
以前は、
multipathd
は、場合によっては失敗したパスで Prioritizer を実行していました。このため、multipathd
が同期優先順位付けで設定されている場合、失敗したパスで Prioritizer を実行しようとするとハングする可能性があります。今回の修正により、パスが失敗したときに multipathd
が Prioritizer を実行しなくなり、この理由で失敗しなくなりました。(BZ#1362120)
システムのアップグレード後、新しい RAID4 ボリューム、および既存の RAID4 または RAID10 論理ボリュームが正しくアクティブ化されるようになる
Red Hat Enterprise Linux バージョン 7.3 で RAID4 論理ボリュームを作成した後、または既存の RAID4 または RAID10 論理ボリュームを持つシステムをバージョン 7.3 にアップグレードした後、システムがこれらのボリュームのアクティブ化に失敗することがありました。この更新により、システムはこれらのボリュームを正常にアクティブにします。(BZ#1386184)
PV のステータスが間違っているため、LVM ツールがクラッシュしなくなる
LVM が、ボリュームグループ (VG) 内の物理ボリューム (PV) のメタデータ間で特定タイプの不整合を観察すると、LVM がそれらを自動的に修復できます。このような不整合は、たとえば、一部の PV がシステムから一時的に見えないときに VG が変更された後、PV が再表示された場合に発生します。
今回の更新以前は、このような修復作業が行われた場合、そうでない場合でも、一時的にすべての PV が戻ったと見なされることがありました。これにより、LVM ツールがセグメンテーション障害で予想外に終了する場合があります。今回の更新で、上記の問題は発生しなくなりました。(BZ#1434054)