CentOS7에서 / home을 축소하고 공간을 늘리는 방법


28

CentOS 7파일 시스템입니다 XFS, 그리고 resize2fs작동하지 않습니다. /home400G 로 축소 하고에 100G 공간을 추가 해야 합니다 /. 어떻게해야합니까?

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G  341M 100% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G   84K  7.8G   1% /dev/shm
tmpfs                    7.8G  778M  7.0G  10% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/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
/dev/mapper/centos-home  500G   20G  480G   4% /home

lvs, vgs 및 pvs의 출력은 다음과 같습니다.

[root@localhost]~# lvs -v
    Using logical volume(s) on command line.
  LV   VG     #Seg Attr       LSize   Maj Min KMaj KMin Pool Origin Data%  Meta%  Move Cpy%Sync Log Convert LV UUID                                LProfile
  home centos    1 -wi-ao---- 499.38g  -1  -1  253    2                                                     4I53D9-7VSm-HN9H-QsSp-FvFU-5R9D-y5VwsN         
  root centos    1 -wi-ao----  50.00g  -1  -1  253    0                                                     LGRoEL-0EHz-G135-p6vx-Lt2s-RvI5-qdT9Sm         
  swap centos    1 -wi-ao----   7.81g  -1  -1  253    1                                                     UYB5xP-cEyV-lWvn-blIq-8s13-9kVB-ykjIWI         
[root@localhost]~# vgs -v
    Using volume group(s) on command line.
  VG     Attr   Ext   #PV #LV #SN VSize   VFree  VG UUID                                VProfile
  centos wz--n- 4.00m   1   3   0 557.26g 64.00m Gd5c08-ujdQ-fsix-o7z6-Wfsv-C0uW-XzDois         
[root@localhost]~# pvs -v
    Using physical volume(s) on command line.
    Found same device /dev/sda2 with same pvid TCmreQr93apETNoTl8bMc54l57FZ5hut
  PV         VG     Fmt  Attr PSize   PFree  DevSize PV UUID                               
  /dev/sda2  centos lvm2 a--  557.26g 64.00m 557.26g TCmreQ-r93a-pETN-oTl8-bMc5-4l57-FZ5hut
[root@localhost]~# 

나는 이것을 발견했다 : blog.endpoint.com/2015/01/… 그것은 불가능하지만 어떤 종류의 대답으로 진행된다고 말합니다.
davey

답변:


47

다른 사람들이 지적했듯이 XFS 파일 시스템은 축소 될 수 없습니다.

따라서 가장 좋은 방법은 Koen van der Rijt가 자신의 게시물에서 설명한 것처럼 / home을 백업하고 더 작은 크기로 볼륨을 제거했다가 다시 만들고 나머지를 / root 볼륨에 제공하는 것입니다.

• / home의 내용을 백업

> tar -czvf /root/home.tgz -C /home .

• 백업 테스트

> tar -tvf /root/home.tgz

• 집에서 내리다

> umount /dev/mapper/centos-home

• 홈 논리 볼륨을 제거합니다

> lvremove /dev/mapper/centos-home

• / home을위한 새로운 400GB 논리 볼륨을 재 작성하고 포맷 및 마운트

> lvcreate -L 400GB -n home centos
> mkfs.xfs /dev/centos/home
> mount /dev/mapper/centos-home

• 남은 공간을 모두 사용하여 / root 볼륨을 확장하고 파일 시스템 크기를 조정 (-r)

> lvextend -r -l +100%FREE /dev/mapper/centos-root

• 백업을 복원

> tar -xzvf /root/home.tgz -C /home

• / home 볼륨의 매핑에 대해서는 / etc / fstab을 확인하십시오. UUID를 사용하는 경우 UUID 부분을 업데이트해야합니다. (새 볼륨을 만들었으므로 UUID가 변경되었습니다)

그게 다야.

이것이 도움이되기를 바랍니다.


1
마운트 해제시, 대상이 사용 중입니다 오류가있을 수 있습니다. umount -l / dev / mapper / centos-home이 도움이 될 수 있습니다. "논리 볼륨 centos / home에 사용중인 파일 시스템이 포함되어 있습니다"라는 또 다른 오류 메시지가 나타날 수 있습니다. fuser -kuc / dev / vg_data / backup이 도움이 될 수 있습니다.
buxizhizhoum

@buxizhizhoum의 조언 yum install psmisc에 따라 사용하려면 명령 이 필요했습니다 fuser.
mythofechelon

정말 효과가있었습니다. 고맙습니다! ssh로 로그인했고 "lvremove"를 제거하기 위해 ssh 연결을 종료해야했습니다. bart사용자가 권장 한대로 restorecon -R -v /home위의 모든 단계를 마친 후에 실행 합니다.
Ikrom

고맙습니다. 내 시나리오에서 언급 된 명령은 10 분 정도 일하는 데 도움이됩니다. 최악의 경우 VM의 백업을 수행 한 다음 위의 명령으로 진행하여 루트 볼륨을 확장 할 수있었습니다.
Harsha Vardhana

5

그의 지시에 따라 공개 키 인증을 사용하여 ssh를 할 수 없었기 때문에 Ari의 대답에 추가되었습니다.

selinux가 활성화 된 경우 / home이 다시 생성되었으므로 / var / log / messages (sshd_config에서 디버그가 활성화 된)에이 메시지가 표시 될 수 있습니다.

SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys

다음과 같이 수정하십시오.

restorecon -R -v /home

3

XFS 파일 시스템을 축소 할 수 없습니다 .
당신은 그들과 함께 성장할 수 있습니다xfs_growfs .

https://access.redhat.com/solutions/540013
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsgrow.html을 참조하십시오.

현재 xfs 파일 시스템으로 파티션 또는 논리 볼륨의 크기를 줄일 수 없습니다. 일부 환경에서 가능한 해결 방법으로 씬 프로비저닝 된 LVM 볼륨을 XFS 파일 시스템 아래의 추가 계층으로 간주 할 수 있습니다.


많은 공간을 차지하는 것을 찾아서 /자체 파일 시스템으로 분리하십시오.


또는 당신은 백업 / 홈 그것의 20g을보고 그 LV를 죽이고 적절한 크기로 다시 만들 수 있습니다
Koen van der Rijt

고맙습니다. /home필요에 따라 공간을 파괴 하고 재 할당 해야 할 수도 있습니다.
GoingMyWay

0

LVM (논리 볼륨 관리)으로 파티션 된 경우 라이브 시스템에서만이 작업을 수행 할 수 있습니다. 결과는 무엇입니까?

lvs -v
vgs -v
pvs -v

선생님, 질문을 업데이트하고 출력을 추가했습니다.
GoingMyWay

위 참조, 당신은 구석에 자신을 그린!
Sum1sAdmin

0

가장 먼저해야 할 일은 사용 가능한 디스크 공간을 모두 사용한 것을 확인하는 것입니다. 그렇지 않으면 나중에이 문제가 다시 발생합니다.

실제로 크기를 조정 해야하는 경우 다음과 같습니다.

  • / home의 내용을 백업하십시오. (단 20g)
  • umount /home
  • 홈 논리 볼륨을 삭제하십시오 (lvremove )
  • 필요에 따라 공간을 할당하고 볼륨 크기를 조정하십시오. ( lvextend,resize2fs )
  • / home에 대한 새 논리 볼륨을 다시 작성하고 포맷 한 후 마운트하십시오 ( lvcreate,mkfs.xfs )
  • 백업 복원
  • / home에 대한 올바른 볼륨을 마운트 할 / etc / fstab의 내용을 다시 확인하십시오.
  • 달리기 mount -a또는reboot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.