LVMでのXFSホームディレクトリのサイズ変更

LVMでのXFSホームディレクトリのサイズ変更

私のサーバーで利用可能なスワップスペースを4 GBから16 GBに増やそうとしていますが、現在XFS +これを不可能にしなさい。

ブートパーティションとLVM2パーティション(インストールのデフォルト)を持つオペレーティングシステム(CentOS 7)をホストするSSDがあります。 LVM2パーティション内には、LVM2パーティション全体を占めるroot3つの仮想パーティションがあります。繰り返しますが、デフォルトのインストールでは、これらのファイルシステムタイプはXFSです。homeswap

home私の単純な願いは、使用率の低いパーティションを縮小してswapパーティションのスペースを作ることです。これで、XFSパーティションを縮小することが不可能であることがわかったので、メインドライブをバックアップし、パーティションを削除し、バックアップから復元してより小さいサイズに復元するウサギの穴に落ちました。

これで問題は、ホームディレクトリまたはパーティションを解放できないことです。 GUIを終了してログアウトした後、ターミナルからrootに再ログインした後、最初はホームディレクトリをアンマウントできませんでした。上記の項目は開いていませんが、使用中の項目がlsofあります。fuser

送った

umount -f home

これは家族を取り除くのに効果があるようです。これで、コメントなしでホームを自由に設置して取り外すことができますが-f、疑わしいです。しかし今は頑張っています。

lvremove /dev/centos/home

返されるメッセージは次のとおりです。

Logical volume centos/home in use.

ここでは多くの質問と回答を見てきましたが、その中には次のものはありません。

  • NFSサービス
  • ファイルを開く
  • プライマリ名とセカンダリ名を使用してファイルを開く
  • アクティブフラグ(これを試しましたが、lvchange -an -v /dev/centos/homeボリュームが使用中であると主張しました)

何が使用されているかを暗示しているようなものが見つかりませんhome。コンピュータの再起動に頼らない解決策を得ることができれば理想的でしょう。

答え1

umount -f残念ながら、VFSではいくつかの項目だけが削除されました。いいえ実際に削除しています。これ以上どこにも表示されなくなりますが、/proc/mountsまだインストールされています。このインストールで何がまだ使用されているかを確認するための明確な方法はありません(またはlsof存在しなくなったパス名を使用すると、他の操作が失敗するためにまだ残っている場合)。実際に削除すると問題が解決します。

losetupcat /proc/mdstat、、dmsetup table...で使用されているデバイスやファイルなどの一部を手動で確認し、/proc/*/{maps,cwd,exe,fd/*}問題のデバイスへの参照を確認できます(インストールパス自体はもう存在しません)。しかし、それがすべてを扱うことはできないかもしれません。

そのような参照(たとえば、実行中のプロセスの開かれたファイル記述子)が見つかると、ファイルにアクセスして必要な方法で変更できるため、ファイルシステムがまだマウントされていて完全に機能していることを証明できます。見えない。

この遅延除去があるかどうかを確認するためにいくつかのコードを使用しました。このコードは他のデバイス名用にハードコードされています。

isbusy() {
    grep -E '^/dev/mmcblk(0p3|1p1) ' /proc/mounts || \
    grep -E '^([^ ]+ ){3}b3:0[39] ' /proc/*/maps || \
    find /proc/[0-9]*/exe /proc/[0-9]*/cwd /proc/[0-9]*/fd -exec stat -tL {} + \
    | grep -E '^([^ ]+ ){6}b30[39]'
}

しかし、それは完全ではありません。

答え2

  1. 可能であれば、システムにRAMを追加します。スワッピングは解決策ではなく、メモリ不足が原因でシステムがクラッシュするのを防ぐための一時的な一時的な方法です。システムが常に交換される場合、実際に必要なのはより多くのRAMです。

システムにさらにRAMを取り付けることができない場合は、可能なRAMと交換することをお勧めします。

  1. ファイルシステム階層を通過する必要があるため、スワップパーティションほど高速ではありませんが(違いを感じる可能性が低い)、/homeに大きな空のファイルを作成し、そのファイルをスワップスペースとして使用するようにシステムに指示できます。 。例えば

    • dd if=/dev/zero of=/home/swapfile bs=1M count=16384

    • mkswap /home/swapfile

    • より多くのスワップスペースのために/etc/fstabを編集し、/home/swapfileを追加します。

    • swapon -a

答え3

lvresize削除lvを使用する代わりにlvを減らすことができると思いますlvremove。これにより、lvremoveコマンドによって引き起こされる問題を回避できます。 Reduce lvを使用しlvresizeた後、lvresizeswapコマンドを使用して.swapファイルからボリュームを追加できますcentos VG

関連情報