lvextend는 RHEL 6에서 루트를 확장합니다.

lvextend는 RHEL 6에서 루트를 확장합니다.

데이터를 처리하는 서버가 있는데 다음 오류가 발생하기 시작했습니다.

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 할당

이제 문제를 해결하기 위해 다음을 수행할 수 있습니다(적어도 제가 생각한 솔루션이 모든 솔루션을 의미하는 것은 아닙니다).

  1. 시도한 파일을 삭제하여 /mount의 일부 공간을 확보하세요.
  2. /mount를 /home으로 이동하여 일부 공간을 확보하세요.
  3. 머신에 새 디스크를 추가한 다음 새 PV를 생성하고 파티션 크기를 조정하기 전에 VG를 확장한 다음 LV를 확장합니다(참고: ignacio에 대한 설명을 업데이트하도록 편집됨).
  4. VM이라고 가정하면 디스크를 확장한 다음 모든 기본 PV, VG, LV 등을 확장할 수 있습니다.

관련 정보