私のサーバーで利用可能なスワップスペースを4 GBから16 GBに増やそうとしていますが、現在XFS +何これを不可能にしなさい。
ブートパーティションとLVM2パーティション(インストールのデフォルト)を持つオペレーティングシステム(CentOS 7)をホストするSSDがあります。 LVM2パーティション内には、LVM2パーティション全体を占めるroot
3つの仮想パーティションがあります。繰り返しますが、デフォルトのインストールでは、これらのファイルシステムタイプはXFSです。home
swap
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
存在しなくなったパス名を使用すると、他の操作が失敗するためにまだ残っている場合)。実際に削除すると問題が解決します。
losetup
cat /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
- 可能であれば、システムにRAMを追加します。スワッピングは解決策ではなく、メモリ不足が原因でシステムがクラッシュするのを防ぐための一時的な一時的な方法です。システムが常に交換される場合、実際に必要なのはより多くのRAMです。
システムにさらにRAMを取り付けることができない場合は、可能なRAMと交換することをお勧めします。
ファイルシステム階層を通過する必要があるため、スワップパーティションほど高速ではありませんが(違いを感じる可能性が低い)、/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
た後、lvresize
swapコマンドを使用して.swapファイルからボリュームを追加できますcentos VG
。