Cara mendapatkan ruang kosong dari drive yang terpasang Redhat 7

14

Dalam infrastruktur VM kami, kami telah mengelompokkan host yang menuju ke SAN.

Yang saya coba cari tahu adalah berapa banyak "ruang putih" yang tersisa ketika menghapus file dalam server Redhat kami. Di server Windows kami, kami menggunakan sdelete dan yang menyelesaikan masalah itu, namun dengan Linux saya kesulitan menemukan solusi.

Saya mendefinisikan "ruang putih" sebagai sektor? tersisa yang tidak memusatkan perhatian sehingga drive SSD harus membidik terlebih dahulu sebelum mereka dapat menulisnya.

Satu hal yang akan saya tunjukkan adalah ketika datang ke Linux saya tahu cukup berbahaya tetapi saya bukan pengguna super.

Melihat ke drive dan partisi:

[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

Sekarang lihat penggunaan disk:

[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

Setelah berjam-jam googling saya menemukan ini, saya pikir itu menunjukkan kepada saya berapa banyak "ruang putih" yang tersedia untuk dibersihkan.

[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%

Saya pikir output yang masuk akal untuk partisi 497M.

Jadi sekarang saya ingin melakukan hal yang sama hanya pada drive terpasang saya (saya pikir itu terpasang.)

 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}'

Yang tidak memberi saya apa-apa.

/ Etc / fstab saya:

[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

Jadi pertanyaan saya adalah apakah saya di jalan yang benar?

Apakah saya menjelaskan apa yang saya cari dengan baik?

Apakah ada istilah untuk "ruang putih" yang mungkin membantu googling saya?

Saya telah menemukan bahwa saya dapat menjalankan "fstrim -v /" pada root tetapi saya benar-benar ingin tahu berapa banyak ruang yang ada.

Juga saya mencoba untuk mencari tahu bahwa ini adalah sistem produksi adalah fstrim I / O intensif, harus dijalankan pada jam sibuk?

Adakah kemungkinan hilangnya data yang menjalankan "fstrim -v /"?

Anthony Fornito
sumber
Anda juga bisa mengatur discardopsi mount pada sistem file.
Michael Hampton
Mungkin menggunakan UUID dari drive yang terpasang daripada / dev / mapper? Coba jalankan blkiddan lihat apakah Anda bisa mendapatkan UUID dan menjalankan kembali partedperintah.
Wilbo

Jawaban:

12

Mampu menjalankan fstrim pada partisi / akan menjadi solusi terbaik namun dengan cara mereka mengkonfigurasi ESXi Anda tidak akan mungkin.

Anda harus dapat mengaktifkan discards pada VM dan perangkat penyimpanan.

Mencoba mengurangi ukuran partisi atau volume logis dengan sistem file xfs tidak dapat dilakukan, ini adalah bug yang dikenal dengan fedora. Jika Anda tertarik dengan fungsi ini, silakan hubungi dukungan Red Hat dan referensi Red Hat bugzilla 1062667, dan berikan kasus penggunaan Anda untuk memerlukan pengurangan / penyusutan XFS.

Sebagai kemungkinan penyelesaian di beberapa lingkungan, volume LVM yang disediakan tipis dapat dianggap sebagai lapisan tambahan di bawah sistem file XFS.

Jika VM sangat ingin menyediakan VMDK, yang berarti tidak ada yang perlu diklaim kembali ketika Anda mencoba untuk memotong (berbicara secara teknis; SCSI UNMAP) volume Anda.

Jika penyimpanan back-end sedang menjalankan provisi tipis maka Anda juga perlu menggunakan file-file VMDK malas zeroed untuk mengurangi penyimpanan dan memungkinkan backend untuk cache / mengurangi data hangat.

Dua opsi yang mungkin:

  1. Saat penyimpanan disediakan oleh server jarak jauh melintasi SAN, Anda hanya dapat membuang blok jika penyimpanannya tipis.

    1. VMotion semua VM ke penyimpanan data yang berbeda dan gunakan alat VMWare bawaan
    2. Terhubung ke Host ESXi dengan SSH
    3. Arahkan ke Folder Mesin Virtual
    4. Verifikasi penggunaan disk dengan du
    5. Jalankan vmkfstools -K [disk]
    6. Verifikasi penggunaan disk dengan du
  2. dd jika = / dev / nol = BIGFILE bs = 1024000 rm -f BIGFILE

Dari apa yang saya tahu ini melakukan hal yang sama seperti sdelete namun dapat menyebabkan lonjakan di disk I / O serta membutuhkan waktu untuk berjalan.

Sesuatu untuk dicoba dalam semalam

Pilihan mana pun bukan yang terbaik tetapi memformat ulang setiap VM untuk mendapatkan ext3 atau ext4 kedengarannya tidak layak.

Apa yang mungkin dapat Anda lakukan adalah mengatur aturan afinitas untuk semua VM linux dan gunakan opsi 1 dari atas.

Brian Curless
sumber
12

Saya mencoba melakukan hal yang sama beberapa minggu yang lalu dan saya tidak tahu caranya. Saya membagikan pernyataan resmi di portal dukungan Redhat.

Saat ini tidak mungkin untuk mengurangi ukuran partisi atau volume logis dengan sistem file xfs. Jika Anda tertarik dengan fungsi ini, silakan hubungi dukungan Red Hat dan referensi Red Hat bugzilla 1062667, dan berikan kasus penggunaan Anda untuk memerlukan pengurangan / penyusutan XFS. Sebagai solusi yang mungkin di beberapa lingkungan, volume LVM yang disediakan tipis dapat dianggap sebagai lapisan tambahan di bawah sistem file XFS.

Semoga berhasil!!

BennyBoy
sumber
Terima kasih atas komentarnya, saya tidak mencoba mengurangi ukuran ruang yang tersedia untuk VM. Drive SSD memiliki (kesalahan) yaitu ketika data dihapus, sektor tersebut harus yang pertama kali dihapus dan kemudian dapat ditulis ke vs jika sektor tersebut belum pernah ditulis, maka sektor tersebut sudah nol. Saya mencoba mencari tahu seperti di windows dengan sdelete saya bisa menggunakan "fstrim -v /". Sebelum menjalankan itu saya mencoba mencari tahu apakah saya dapat melihat berapa banyak sektor yang akan terpengaruh, dan apa dampaknya terhadap sistem.
Anthony Fornito