OpenSolarisからファイルを削除すると、デバイスにスペースがありません。

OpenSolarisからファイルを削除すると、デバイスにスペースがありません。

NFS共有をマウントしてみてください(次からインディアナオープンサーバー) クライアントマシンでOIサーバーがクラッシュしました。ログダンプのように見える黒い死画面が表示された後、システムが再起動します。回復されておらず、起動を停止した後、次のエラーメッセージが表示されました。

svc.startd[9] Could not log for svc:/network/dns/mulitcast:default: write(30) failed with No space left on device?

私のブートドライブにはOS以外には何もありません...ドライブに何がいっぱいになるのかわかりません。おそらくどのようなログファイルですか?とにかく何も削除できないようです。何でも削除しようとすると、スペースなしエラーが発生します。

$ rm filename
cannot remove 'filename' : No space left on device 

メンテナンスモードにログインできますが、標準ユーザープロンプトにはログインできません。

出力はdf次のとおりです

rpool/ROOT/openindiana-baseline    4133493    4133493          0    100%   /
swap                              83097900      11028  830386872      1%   /etc/svc/volatile
/usr/lib/libc/libc_hwcap1.so.1     4133493    4133493          0    100%   /lib/libc.so.1

出力はmount次のとおりです

/ on rpool/ROOT/openindiana-baseline read/write/setuid/devices/dev:2d9002 on Wed Dec 31 16:00:00 1969
/devices on /devices read/write/setuid/devices/dev:8b40000 on Fri Jul 8 14:56:54 2011
/dev on /dev read/write/setuid/devices/dev:8b80000 on Fri Jul 8 14:56:54 2011
/system/contract on ctfs read/write/setuid/devices/dev:8c40001 on Fri Jul 8 14:56:54 2011
/proc on proc read/write/setuid/devices/dev:8bc0000 on Fri Jul 8 14:56:54 2011
/etc/mnttab on mnttab read/write/setuid/devices/dev:8c80001 on Fri Jul 8 14:56:54 2011
/etc/svc/volatile on swap read/write/setuid/devices/xattr/dev:8cc0001 on Fri Ju8 14:56:54 2011
/system/object on objfs read/write/setuid/devices/dev:8d00001 on Fri Jul 8 14:6:54 2011
/etc/dfs/sharetab on sharefs read/write/setuid/devices/dev:8d40001 on Fri Jul 14:56:54 2011
/lib/libc.s0.1 on /usr/lib/libc/libc_hucap1.s0.1 read/write/setuid/devices/dev:d90002 on Fri Jul 8 14:57:06 2011 

「zfs list -t all」の出力は次のようになります。

rpool                                                       36.4G   0       47.5K   /rpool
rpool/ROOT                                                  4.23G   0         31K   legacy
rpool/ROOT/openindiana                                      57.5M   0       3.99G   /
rpool/ROOT/openindiana-baseline                             61K     0       3.94G   /
rpoo1/ROOT/openindiana-system-edge                          4.17G   0       3.98G   /
rpool/ROOT/openindiana-system-edge@install                  19.9M   -       3 38G   -
rpoo1/ROOT/openindiana-system-edge@2011-07-06-20:45:08      73.1M   -       3.57G   -
rpoo1/ROOT/openindiana-system-edge@2011-07-06-20:48:53      75.9M   -       3 82G   -
rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:14:04      61K     -       3.94G   -
rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:15:14      61K     -       3.94G   -
rpoo1/ROOT/openindiana-system-edge@2011-07-07-02:28:14      61K     -       3.94G   -
rpool/ROOT/openindiana-system-stable                        61K     0       3.94G   /
rpoo1/ROOT/pre_first_update_07.06                           108K    0       3 82G   /
rpool/ROOT/pre_second_update_07.06                          90K     0       3.57G   /
rpool/dump                                                  9.07G   0       9.07G   -
rpool/export                                                3.85G   0       32K     /export
rpool/export/home                                           3.85G   0       32K     /export/home
rpool/export/home/admin                                     3.85G   0       3.85G   /export/home/admin
rpool/swap                                                  19.3G   19.1G   126M    -

ベストアンサー1

ああ、変ですね…ファイルを削除するスペースが足りません!

これはすべてのファイルシステムで発生する可能性がありますが、ZFSでは比較的一般的な問題であることがわかりました。持つ スナップ写真

削除するファイルがスナップショットにまだ存在するという説明です。したがって、削除してもコンテンツはまだ存在し(スナップショットのみ)、システムはスナップショットにファイルがあったが現在の状態にはないという情報をさらに記録する必要があります。追加情報に十分なスペースがありません。

短期的な回避策は、最新のスナップショット以降に作成されたファイルを見つけて削除することです。もう1つの方法は、最新のスナップショットの後に添付されたファイルを見つけて、最新のスナップショットの時点でサイズに切り捨てることです。ログにスパムが発生してディスクがいっぱいになったら、最大のログファイルを切り取ります。

より一般的な修正は、一部のスナップショットを削除することです。リストスナップショットを使用できますzfs list -t snapshot。特定のスナップショットを削除すると、そのスナップショットがどのくらいのスペースを取り戻すかを予測する簡単な方法はないようです。スナップショットに保存されているデータが他のスナップショットに必要になる可能性があるため、そのスナップショットを削除してもデータはそのまま残ります。したがって、必要に応じてデータを別のディスクにバックアップし、不要になったスナップショットを識別してから実行しますzfs destroy name/of/snap@shot

この問題に関する広範な議論があります。このOpenSolarisフォーラムのトピック

おすすめ記事