web-dev-qa-db-ja.com

CentOS7のデバイスにスペースが残っていません

OSがCentOS7である私のマシンは、50GデータをMySQLにバックアップする必要があります。しかし、デバイスにはスペースが残っていません。しかし、/homeには多くのスペースがあります。 MySQLがデータを保存するのに十分なスペースがあることをユーザーにどのようにして知らせることができますか/dev/mapper/centos-rootにスペースがないと思います。スペースを/homeから/に移動するにはどうすればよいですか。

$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G   20K 100% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G   84K  7.8G   1% /dev/shm
tmpfs                    7.8G  2.6G  5.2G  34% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/mapper/centos-home  500G   20G  480G   4% /home
/dev/sda1                497M  241M  257M  49% /boot
tmpfs                    1.6G   16K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0
tmpfs                    1.6G  4.0K  1.6G   1% /run/user/1000

そしてg++コンパイルコードが失敗しました。

$ g++ test.cpp
Cannot create temporary file in /tmp/: No space left on device
[1]    6642 abort (core dumped)  g++ test.cpp
4
GoingMyWay

最初に、ルートパーティション( "/")がいっぱいにならないようにする必要があります。そうしないと、システムで多くの問題が発生します。多くのシステムおよびユーザータスクで書き込み可能な/ tmpが必要です。

ルートパーティションは50 GBしかないため、現在のパーティション構造で必要なスペースを確保することはできません。

オプションは、MySQLデータファイル用のスペースを確保するために、別の/ var(/ homeのスペースが足りない)を再パーティション化することです。ユーティリティpartedがそれを行います。それがホストされているマシンであり、簡単ではない、または実行できない可能性がある場合、何をしているかわからない場合は、そのユーティリティをいじることはお勧めしません。

それが失敗した場合、それは少しハックですが、シンボリックリンクでそれを回避することができます。繰り返しますが、通常はお勧めできません。実行中のデーモンにはファイルロックがあり、移動を停止するため、おそらくマシンをシングルユーザーモードにする必要があります。本質は次のとおりです。

mv /var /home
ln -s /home/var /var

その場合、おそらくマシンを再起動してきれいに起動する必要があります。

shutdown -r now

明確な計画がないと、ディスクパーティションをいじるのが非常に面倒になる可能性があるため、何をしたいかを調べてください。

2
Miles Gillham

CentOs 7を使用して2つのIDEを試しましたが、約16000ファイルのプロジェクトを処理するのと同じ問題がありました。

「デバイスにスペースが残っていません」がIDEによって記録されました。
両方のIDEがハングしているか、応答していなかったか、デバッグアクションが停止または一時停止すると、システム全体がクラッシュするか、デスクトップセッションが終了します。

そしてそれは言ったメッセージログで:

Oct  2 10:44:08 localhost gnome-session: inotify_add_watch("/home/tools/trunk/ext/boost/libs/hana/example/functional") failed: "No space left on device"

Centosカーネルには、フォルダー監視などのためのバッファーがあることがわかります。
私はsfuser0000によるソリューションを this site。 で見つけました。これはソリューションのコピーです:

一般的な問題、一時的な解決策、監視制限を(たとえば、512Kに)増やします。

Sudo sysctl fs.inotify.max_user_watches = 524288

(私のために働いたが、私はおそらく永続的でおそらくもっと大きくなるだろう、以下の情報)

変更を永続的にするには、ファイル/ etc/sysctl.confを編集し、ファイルの最後に次の行を追加します。

fs.inotify.max_user_watches = 524288

以下のサイズ情報:

「あなたは時計を増やすことができますか?どれだけ?トレードオフはありますか?短い答え:確かに、汗はありません。必要に応じて、50万(524288)までまっすぐに進んでください...使用される追加のメモリは、現代のシステムでは無視できるはずです。 4GB +のメモリを搭載。

使用される各inotifyウォッチは、540バイト(32ビットシステム)、または1 kB(ダブル-64ビット)を消費します。これは、スワップできないカーネルメモリから発生します。したがって、最大値を524288に設定し、すべてが使用された(ありそうにない)とすると、約を使用します。 256 MB/512 MBの32ビット/ 64ビットカーネルメモリ

また、アプリケーションはinotifyハンドル、ファイル/ディレクトリパスなどを追跡するために追加のメモリを使用することに注意してください。その程度はデザインに依存します。」

0
Houtman

ハードリンクが後の段階で問題を引き起こす可能性があるため、acronisなどの専門的なツールを使用してオペレーティングシステムをクローンし、より大きなパーティションを持つより大きなディスクにクローンします。新しいディスクレイアウトに移動した後、centosが起動しない可能性があるため、boot rescueを使用してgrubを再構築します。

0
SACn

永続的なソリューション:

fs.inotify.max_user_watches = 1048576#この行に追加するだけ

/ etc/sysctl.conf

制限値を永久に修正しました

それから

sysctl -p

0
MD IRFAN

MySQLのバックアップonly/パーティションに保存すると、データを簡単に移動できます。

データを/opt/backup/に保存するとします。

  • バックアップがそのディレクトリに書き込むことを停止します(バックアッププログラムを使用している場合)

  • /のバックアップフォルダーを/home/(または/homeの任意のフォルダー)に移動します

    #mv/opt/backup// home /

  • 古いディレクトリへのシンボリックリンクを作成します。

    #ln -s/home/backup// opt/backup

  • バックアッププログラムがchmodを使用した/home/backupへの書き込み権限を持っていることを確認するための適切な権限を付与します。

  • バックアッププログラムを開始します

0
cuongnv23