วิธีลดขนาด / โฮมและเพิ่มพื้นที่ว่างบน CentOS7


28

CentOS 7ระบบไฟล์คือXFSและresize2fsไม่ทำงาน ฉันต้องการที่จะหดตัวลง/homeไป 400 กรัมและเพิ่มพื้นที่ 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 ไม่สามารถหดได้

ดังนั้นทางออกที่ดีที่สุดของคุณคือการสำรองข้อมูล / สร้างบ้านลบและสร้างวอลลุ่มใหม่ในขนาดที่เล็กลง

•สำรองเนื้อหาของ / home

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

•ทดสอบการสำรองข้อมูล

> tar -tvf /root/home.tgz

• unmount บ้าน

> umount /dev/mapper/centos-home

•ลบโลจิคัลวอลุ่มโฮม

> lvremove /dev/mapper/centos-home

•สร้างโลจิคัลวอลุ่มใหม่ 400GB สำหรับ / home, format และ mount

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

•ขยาย / ปริมาตรรูทของคุณด้วยพื้นที่ที่เหลือทั้งหมดและปรับขนาด (-r) ระบบไฟล์ขณะทำเช่นนั้น

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

•เรียกคืนการสำรองข้อมูลของคุณ

> tar -xzvf /root/home.tgz -C /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 และฉันต้องการยุติการเชื่อมต่อ ssh เพื่อลบ "lvremove" ตามที่bartผู้ใช้แนะนำฉันทำงานrestorecon -R -v /homeหลังจากทำตามขั้นตอนข้างต้นทั้งหมด
Ikrom

ขอขอบคุณ. ในสถานการณ์ของฉันคำสั่งที่กล่าวถึงช่วยฉันได้มากมันเป็นงานเพียง 10 นาที สำหรับกรณีที่แย่ที่สุดที่ฉันได้ทำการสำรองข้อมูลของ VM แล้วดำเนินการตามคำสั่งข้างต้นแล้วฉันก็สามารถที่จะขยายปริมาณรูต
Harsha Vardhana

5

นอกเหนือจากคำตอบของอารีย์เนื่องจากฉันไม่สามารถใช้การพิสูจน์ตัวตนคีย์สาธารณะหลังจากทำตามคำแนะนำของเขา

ด้วยการเปิดใช้งาน selinux คุณอาจได้รับข้อความนี้ใน / var / log / messages (ด้วยการเปิดใช้งานการดีบักใน sshd_config) เนื่องจาก / home ถูกสร้างขึ้นใหม่:

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_Administr_Guide/xfsgrow.html

ปัจจุบันไม่สามารถลดขนาดของพาร์ติชันหรือโลจิคัลวอลุ่มด้วยระบบไฟล์ xfs เนื่องจากวิธีการแก้ปัญหาที่เป็นไปได้ในบางสภาพแวดล้อมวอลุ่ม LVM ที่จัดเตรียมแบบ thin สามารถพิจารณาเป็นเลเยอร์เพิ่มเติมด้านล่างระบบไฟล์ XFS


ค้นหาว่ามีอะไรกินเนื้อที่มากภายใต้/และแยกออกเป็นระบบไฟล์ของตัวเอง


อีกทางเลือกหนึ่งคือคุณสามารถสำรองข้อมูล / ดูที่บ้านด้วยน้ำหนักเพียง 20 กรัมและฆ่าเลเวลนั้นและสร้างใหม่ด้วยขนาดที่เหมาะสม
Koen van der Rijt

ขอขอบคุณ. บางทีฉันควรทำลาย/homeและจัดสรรพื้นที่ใหม่ตามต้องการ
GoingMyWay

0

คุณสามารถทำได้บนระบบที่ใช้งานจริงหากมีการแบ่งพาร์ติชันด้วย LVM - การจัดการโลจิคัลวอลุ่ม ผลลัพธ์ของ:

lvs -v
vgs -v
pvs -v

ท่านครับผมได้อัพเดทคำถามเพิ่มเอาท์พุท
GoingMyWay

ดูข้างบนคุณวาดภาพเองในมุม!
Sum1sAdmin

0

สิ่งแรกที่คุณต้องทำคือตรวจสอบสิ่งที่ใช้หมดพื้นที่ว่างในดิสก์ทั้งหมดมิฉะนั้นปัญหานี้จะเกิดขึ้นอีกครั้งในอนาคต

หากคุณจำเป็นต้องปรับขนาดแนวทางของฉัน:

  • สำรองเนื้อหาของ / home (เพียง 20 กรัมเท่านั้น)
  • umount /home
  • ทำลายโลจิคัลวอลุ่มที่บ้าน ( lvremove)
  • จัดสรรพื้นที่ตามที่ต้องการปรับขนาดไดรฟ์ ( lvextend, resize2fs)
  • สร้างโลจิคัลวอลุ่มใหม่สำหรับ / home, format และ mount ( lvcreate, mkfs.xfs)
  • คืนค่าการสำรองข้อมูล
  • ตรวจสอบเนื้อหาของ / etc / fstab อีกครั้งว่าคุณจะติดตั้งวอลลุ่มที่ถูกต้องสำหรับ / home
  • วิ่งmount -aหรือreboot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.