![lvextend는 RHEL 6에서 루트를 확장합니다.](https://linux55.com/image/133166/lvextend%EB%8A%94%20RHEL%206%EC%97%90%EC%84%9C%20%EB%A3%A8%ED%8A%B8%EB%A5%BC%20%ED%99%95%EC%9E%A5%ED%95%A9%EB%8B%88%EB%8B%A4..png)
데이터를 처리하는 서버가 있는데 다음 오류가 발생하기 시작했습니다.
write error: no space left on device
cannot create temp file for here-document: no space left on device
기본 운영 체제로 우분투 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 볼륨에는 남은 공간이 많지 않습니다. 16MB가 남아 있지만 /home 마운트된 볼륨(lv_home)에는 여전히 거의 1TB를 사용할 수 있습니다. "-i" 스위치를 사용한 두 번째 명령은 실제로 남은 공간의 양이 아니라 남은 공간의 양을 의미합니다.인덱스 노드디스크에 남은 공간이 부족하면 "장치에 공간 없음" 메시지가 나타날 수도 있지만 여기서는 문제가 되지 않습니다.
다음 호는 여기에 있습니다:
모든 파티션이 동일한 볼륨 그룹 이름을 공유하고 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 등을 확장할 수 있습니다.