データを処理するサーバーがあり、次のエラーが発生し始めました。
write error: no space left on device
cannot create temp file for here-document: no space left on device
基本的なオペレーティングシステムとしてUbuntu 14.04を使用していますが、ファイルシステムを管理するのは理解しにくいので、この質問をします。
df -h
印刷
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
99G 94G 16M 100% /
/dev/sda2 477M 39M 413M 9% /boot
/dev/sda1 200M 264K 200M 1% /boot/efi
/dev/mapper/VolGroup-lv_home
1.5T 453G 996G 32% /home
shmfs 30G 0 30G 0% /dev/shm
shmfs 30G 0 30G 0% /dev/shm
shmfs 30G 0 30G 0% /dev/shm
明らかに私のlv_rootに残っているスペースはあまりありません。私は走った
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root
6553600 143617 6409983 3% /
/dev/sda2 128016 22 127994 1% /boot
/dev/sda1 0 0 0 - /boot/efi
/dev/mapper/VolGroup-lv_home
101588992 44952 101544040 1% /home
shmfs 4085528 1 4085527 1% /dev/shm
shmfs 4085528 1 4085527 1% /dev/shm
shmfs 4085528 1 4085527 1% /dev/shm
これはまだ空き容量が多いことを意味します(正しく理解したかどうかはわかりません)。
ファイルを削除しようとしましたが、/var/log
ファイルサイズが大きすぎないため、何も起こりませんでした。lvextend
私はVolGroupのサイズを増やすことができることを読んで考えましたlv_root
。
sudo lvs --segments
私にください
LV VG Attr #Str Type SSize
lv_home VolGroup -wi-ao---- 1 linear 1.36t
lv_home VolGroup -wi-ao---- 1 linear 157.78g
lv_root VolGroup -wi-ao---- 1 linear 100.00g
lv_swap VolGroup -wi-ao---- 1 linear 20.00g
sudo vgdisplay VolGroup
私にください
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 1.63 TiB
PE Size 4.00 MiB
Total PE 427545
Alloc PE / Size 427545 / 1.63 TiB
Free PE / Size 0 / 0
すべてのパーティションが同じボリュームグループ名を共有し、VolGroup
VGサイズが1.63TiBであることを確認した後、lv_root
スペースを400Gib増やしました。
sudo lvextend -L +400G /dev/mapper/VolGroup-lv_root
しかし、このエラーメッセージが出ました。
Insufficient free space: 102400 extents needed, but only 0 available
40Gには同じメッセージの異なる範囲が必要です。
サーバーのOSはRHEL 6で、Oracle DBに入力されたデータを処理しています。
答え1
私はあなたの質問に答えようとします。これが最初の質問です。
明らかに私のlv_rootに残っているスペースはあまりありません。私は走った
[...]
これはまだ空き容量が多いことを意味します(正しく理解したかどうかはわかりません)。
したがって、ルートにマウントされたlv_rootボリュームには余分なスペースがありません。 16 MB は残りますが、/home マウントされたボリューム (lv_home) にはほぼ 1 TB を使用できます。 「-i」スイッチを使用した2番目のコマンドは、実際には残りのスペースの量ではなく、残りのスペースの量を意味します。インデックスノードディスクに空き容量が足りないと、「デバイスに空きがありません」というメッセージが表示されることがありますが、ここでは問題ありません。
次の号はここにあります:
すべてのパーティションが同じボリュームグループ名を共有し、VolGroupとVGのサイズが1.63TiBであることを知り、lv_rootスペースを400Gib増やしました。
VGサイズは1.63TBですが、vgdisplayコマンドの最後の行から返されたように、これらのスペースはすべて現在割り当てられているため、LVに400GBを割り当てることはできません。
**無料PE/サイズ0/0**
lvs --segments コマンドで空間の実際の再分割を確認できます。
- lv_homeに1.36TBを割り当てる
- lv_homeにも157.78GBが割り当てられます。
- lv_rootに100GBが割り当てられ、ほとんど使い果たされました
- スワップ領域に20GBを割り当てる
これで問題を解決するために、次のことができます(少なくとも私が考えた解決策がすべての解決策を意味するわけではありません)。
- 試行したファイルを削除して、/mountの空き容量を解放してください。
- /mountを/homeに移動して、いくつかのスペースを解放します。
- マシンに新しいディスクを追加し、新しいPVを作成し、パーティションのサイズを変更する前にVGを展開してからLVを展開します(注:ignacioの説明を更新するように編集されています)。
- VMと仮定すると、ディスクを拡張してから、すべての基本PV、VG、LVなどを拡張できます。