วิธีการรับพื้นที่ว่างจากไดรฟ์ที่ติดตั้ง Redhat 7


14

ในโครงสร้างพื้นฐาน VM ของเราเรามีโฮสต์ที่ทำคลัสเตอร์ไปที่ SAN

สิ่งที่ฉันพยายามจะคิดออกก็คือ "พื้นที่สีขาว" เหลืออยู่เท่าไรเมื่อทำการลบไฟล์ภายในเซิร์ฟเวอร์ Redhat ของเรา บนเซิร์ฟเวอร์ Windows ของเราเราใช้ sdelete และช่วยแก้ปัญหานั้นด้วย Linux อย่างไรก็ตามฉันพยายามหาทางออก

ฉันกำลังกำหนด "พื้นที่สีขาว" เป็นภาคหรือไม่ ที่เหลืออยู่ซึ่งไม่เป็นศูนย์ว่าไดรฟ์ SSD ต้องเป็นศูนย์ก่อนจึงจะสามารถเขียนลงไปได้

สิ่งหนึ่งที่ฉันจะชี้ให้เห็นก็คือเมื่อพูดถึง Linux ฉันรู้ว่าเพียงพอที่จะเป็นอันตราย แต่ไม่ใช่ผู้ใช้ระดับสูง

ค้นหาไดรฟ์และพาร์ติชัน:

[root@rhserver1-DATA10 /]# fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0005d52e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   104857599    51915776   8e  Linux LVM

Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-root: 51.0 GB, 50964987904 bytes, 99540992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/rhel_rhserver1--data10-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

ตอนนี้ดูการใช้งานดิสก์:

[root@rhserver1-DATA10 /]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/mapper/rhel_rhserver1--data10-root   48G  6.1G   42G  13% /
devtmpfs                                906M     0  906M   0% /dev
tmpfs                                   921M  340K  920M   1% /dev/shm
tmpfs                                   921M   90M  831M  10% /run
tmpfs                                   921M     0  921M   0% /sys/fs/cgroup
/dev/sdb                                 50G  3.5G   44G   8% /ACMS01Backup
/dev/sda1                               497M  210M  288M  43% /boot
tmpfs                                   185M   20K  185M   1% /run/user/1000
tmpfs                                   185M     0  185M   0% /run/user/1002

หลังจาก googling หลายชั่วโมงฉันพบสิ่งนี้ฉันคิดว่ามันแสดงให้ฉันเห็นว่ามี "พื้นที่สีขาว" ว่างเปล่าเพื่อล้างค่า

[root@rhserver1-DATA10 /]#  parted /dev/sda unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
1.02MB
[root@rhserver1-DATA10 /]#  parted /dev/sda unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
0.00%

ฉันคิดว่าผลลัพธ์ที่สมเหตุสมผลสำหรับพาร์ติชัน 497M

ดังนั้นตอนนี้ฉันต้องการทำสิ่งเดียวกันบนไดรฟ์ที่ติดตั้งของฉันเท่านั้น (ฉันคิดว่ามันติดตั้งอยู่)

 parted /dev/mapper/rhel_rhserver1--data10-root unit MB print free | grep 'Free Space' | tail -n1 | awk '{print $3}'
 parted /dev/mapper/rhel_rhserver1--data10-root unit '%' print free | grep 'Free Space' | tail -n1 | awk '{print $3}'

ซึ่งทำให้ฉันไม่มีอะไร

/ etc / fstab ของฉัน /:

[root@rhserver1-DATA10 /]# cat /etc/fstab
/dev/mapper/rhel_rhserver1--data10-root /                       xfs     defaults        0 0
UUID=2f97a17c-a6d5-4904-ad5c-7c16b4510201 /boot                   xfs     defaults        0 0
/dev/mapper/rhel_rhserver1--data10-swap swap                    swap    defaults        0 0
/dev/disk/by-uuid/be4c45cf-5d72-4b97-b647-2e585947041f /ACMS01Backup auto nosuid,nodev,nofail,x-gvfs-show 0 0

ดังนั้นคำถามของฉันคือฉันบนเส้นทางที่ถูกต้อง?

ฉันอธิบายสิ่งที่ฉันกำลังมองหาหรือไม่?

มีคำว่า "พื้นที่สีขาว" ที่อาจช่วย Google ของฉันได้ไหม

ฉันพบว่าฉันสามารถเรียกใช้ "fstrim -v /" บนรูทได้ แต่ฉันอยากรู้ว่ามีพื้นที่เหลืออยู่เท่าใด

นอกจากนี้ฉันพยายามที่จะคิดออกว่าสิ่งเหล่านี้เป็นระบบการผลิตเป็น fstrim I / O เข้มข้นมันควรจะทำงานในชั่วโมงเร่งด่วน?

มีโอกาสที่ข้อมูลจะสูญหาย "fstrim -v /" หรือไม่?


คุณสามารถตั้งค่าdiscardตัวเลือกเมานต์บนระบบไฟล์
Michael Hampton

บางทีใช้ UUID ของไดรฟ์ที่ติดตั้งแทนที่จะเป็น / dev / mapper ลองเรียกใช้blkidและดูว่าคุณสามารถรับ UUID และเรียกใช้partedคำสั่งอีกครั้ง
wilbo

คำตอบ:


12

ความสามารถในการรัน fstrim บน / พาร์ติชั่นจะเป็นทางออกที่ดีที่สุดอย่างไรก็ตามด้วยวิธีที่ ESXi กำหนดค่าไว้จะไม่สามารถทำได้

คุณต้องสามารถเปิดใช้งานการละทิ้งทั้ง VM และอุปกรณ์เก็บข้อมูล

การพยายามลดขนาดพาร์ติชันหรือโลจิคัลวอลุ่มด้วยระบบไฟล์ xfs ไม่สามารถทำได้นี่เป็นข้อบกพร่องที่รู้จักกับ fedora หากคุณมีความสนใจในฟังก์ชั่นนี้โปรดติดต่อฝ่ายสนับสนุน Red Hat และการอ้างอิง Red Hat bugzilla 1062667 และจัดเตรียมกรณีการใช้งานของคุณสำหรับการลด / ลดขนาด XFS

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

หาก VM เป็น VMDK ที่เตรียมไว้อย่างกระตือรือร้นซึ่งหมายความว่าไม่มีอะไรที่จะเรียกคืนได้เมื่อคุณพยายามที่จะตัด (พูดทางเทคนิค SCSI UNMAP) ปริมาณของคุณ

หากหน่วยเก็บข้อมูลส่วนหลังกำลังรันการจัดเตรียมแบบบางคุณจำเป็นต้องใช้ไฟล์ VMDK แบบ zeroed ขี้เกียจเพื่อลดพื้นที่เก็บข้อมูลและทำให้แบ็กเอนด์สามารถแคช / ลบข้อมูลอุ่นได้

สองตัวเลือกที่เป็นไปได้:

  1. เมื่อจัดเก็บข้อมูลโดยเซิร์ฟเวอร์ระยะไกลใน SAN คุณสามารถยกเลิกการบล็อกได้เฉพาะเมื่อที่จัดเก็บข้อมูลถูกจัดเตรียมแบบบาง

    1. VMotion VM ทั้งหมดไปยังที่เก็บข้อมูลอื่นและใช้เครื่องมือ VMWare ในตัว
    2. เชื่อมต่อกับ ESXi Host ด้วย SSH
    3. นำทางไปยังโฟลเดอร์เครื่องเสมือน
    4. ตรวจสอบการใช้ดิสก์ด้วย du
    5. เรียกใช้ vmkfstools -K [ดิสก์]
    6. ตรวจสอบการใช้ดิสก์ด้วย du
  2. dd if = / dev / zero of = BIGFILE bs = 1024000 rm -f BIGFILE

จากสิ่งที่ฉันสามารถบอกได้ว่าสิ่งนี้ทำเช่นเดียวกับ sdelete แต่มันสามารถทำให้เกิดการขัดขวางในดิสก์ I / O เช่นเดียวกับใช้เวลาสักครู่ในการทำงาน

สิ่งที่ต้องลองข้ามคืน

ตัวเลือกอย่างใดอย่างหนึ่งไม่ได้ดีที่สุด แต่การฟอร์แมต VM ใหม่ทุกครั้งเพื่อรับ ext3 หรือ ext4 นั้นไม่เป็นไปได้

สิ่งที่คุณสามารถทำได้คือการตั้งค่ากฎความสัมพันธ์สำหรับ linux VM ทั้งหมดและใช้ตัวเลือก 1 จากด้านบน


12

ฉันพยายามทำสิ่งเดียวกันสองสามสัปดาห์ที่ผ่านมาและฉันไม่พบวิธี ฉันแบ่งปันแถลงการณ์อย่างเป็นทางการในพอร์ทัลสนับสนุน Redhat

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

โชคดี!!


ขอบคุณสำหรับความคิดเห็น แต่ฉันไม่ได้พยายามลดขนาดของพื้นที่ที่มีอยู่ให้กับ VM ไดรฟ์ SSD มี (ข้อผิดพลาด) นั่นคือเมื่อข้อมูลถูกลบเซกเตอร์จะถูก zeroed out ก่อนและจากนั้นมันสามารถถูกเขียนไปยัง vs ถ้าเซกเตอร์ที่ไม่เคยถูกเขียนไปยังมันถูก zeroed ฉันพยายามคิดเหมือนใน windows ด้วย sdelete ฉันสามารถใช้ "fstrim -v /" ก่อนเริ่มใช้งานฉันกำลังพยายามหาว่าฉันสามารถดูว่ามีกี่ภาคที่ได้รับผลกระทบและสิ่งที่ส่งผลกระทบต่อระบบ
Anthony Fornito
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.