Ketika menjalankan perintah df untuk memeriksa kapasitas disk cloud pada instance Elastic Compute Service (ECS) Linux, hasilnya mungkin berbeda dari kapasitas yang dibeli. Hal ini biasanya disebabkan oleh ruang disk yang dicadangkan sistem atau digunakan oleh inode dan metadata sistem file.
Deskripsi masalah
Anda membeli disk cloud 200-GiB untuk instance ECS Linux dan menginisialisasinya. Saat menjalankan perintah df -h, kapasitas yang ditampilkan adalah 197 GiB, bukan 200 GiB.
Keluaran perintah
df -hmenunjukkan kapasitas total (Size) yang berbeda dari kapasitas yang dibeli di Konsol ECS.Jumlah ruang yang digunakan (Used) dan ruang yang tersedia (Avail) berbeda dari kapasitas total (Size).

Kapasitas disk yang dibeli di Konsol ECS diukur dalam GiB. Jika Anda menjalankan perintah df -h, penggunaan partisi disk diukur dalam unit biner seperti KiB, MiB, atau GiB. Namun, jika menggunakan perintah df -H, penggunaan partisi disk diukur dalam unit desimal seperti KB, MB, atau GB.
Perintah
df -hmenggunakan basis 1.024 dan mengukur penggunaan partisi dalam unit biner seperti KiB, MiB, atau GiB.Perintah
df -Hmenggunakan basis 1.000 dan mengukur penggunaan partisi dalam unit desimal seperti KB, MB, atau GB.
Sebagai contoh, ukuran sebenarnya sebuah partisi adalah 40 GiB. Jika menjalankan perintah df -h, kapasitas partisi yang ditampilkan adalah 40G. Namun, jika menggunakan perintah df -H, kapasitas partisi yang ditampilkan adalah 42G. Hal ini karena 40 × 1024^3 byte dibagi dengan 1000^3 sama dengan sekitar 42,95 GB.
Penyebab
Masalah 1: Kapasitas total (Size) dalam keluaran df -h berbeda dari kapasitas disk yang dibeli di Konsol ECS
Overhead sistem file
Jika Anda membeli disk cloud 200-GiB, memformatnya, lalu menyambungkannya ke instance ECS Linux, kapasitas total yang terlihat mungkin hanya sekitar 197 GiB. Hal ini disebabkan oleh struktur data tambahan yang dihasilkan saat sistem file dibuat. Meskipun struktur data ini hanya menghabiskan sedikit ruang disk, tetap memengaruhi kapasitas total.
Masalah 2: Jumlah ruang yang digunakan (Used) dan ruang yang tersedia (Avail) berbeda dari kapasitas total (Size)
Masalah ini biasanya disebabkan oleh inode yang menghabiskan ruang disk atau sejumlah ruang disk yang dicadangkan oleh sistem. Untuk informasi lebih lanjut tentang cara menghitung ruang disk yang dihabiskan oleh inode atau ruang yang dicadangkan oleh sistem, lihat bagian Metode Pemecahan Masalah.
Konsumsi inode
Sistem file mengalokasikan inode untuk setiap file guna mencatat atribut seperti izin dan pemilik. Inode ini menghabiskan sejumlah ruang disk yang tidak dihitung oleh perintah df -h.
Cadangan sistem
Selain inode, Linux mencadangkan sejumlah ruang disk untuk mencegah Direktori root sepenuhnya terisi, memastikan stabilitas dan keamanan sistem. Ruang disk yang dicadangkan ini tidak termasuk dalam jumlah ruang yang digunakan (Used) dan ruang yang tersedia (Avail) dalam keluaran perintah df -h.
Metode pemecahan masalah
Lihat informasi rinci tentang partisi
Jalankan perintah berikut untuk melihat informasi partisi disk cloud:
sudo tune2fs -l /dev/[$Partition] | grep -E "count|size:"Ganti /dev/[$Partition] dengan nama sebenarnya dari partisi, seperti /dev/vdb1.
Berikut adalah contoh keluaran perintah tersebut:

Hitung ruang disk yang dihabiskan oleh inode
Jalankan perintah berikut untuk mendapatkan jumlah total ruang disk yang dihabiskan oleh inode:
sudo tune2fs -l /dev/[$Partition] | awk '/Inode count:/{c=$3} /Inode size:/{split($0,a,":"); s=a[2]} END{if(c && s) printf "Ruang Inode: %.2f GiB\n", c*strtonum(s)/(1024^3); else print "Error: Tidak dapat menemukan informasi Inode."}'Ganti /dev/[$Partition] dengan nama sebenarnya dari partisi, seperti /dev/vdb1.
Berikut adalah contoh keluaran perintah tersebut:

Anda juga dapat menggunakan rumus berikut untuk menghitung ruang disk yang dihabiskan oleh inode:
Hitung ruang disk yang dicadangkan oleh sistem
Jalankan perintah berikut untuk mendapatkan jumlah total ruang disk yang dicadangkan oleh sistem:
sudo tune2fs -l /dev/[$Partition] | awk '/Reserved block count:/{r=$4} /Block size:/{b=$3} END{if(r && b) printf "Ruang cadangan: %.2f GiB\n", r*b/(1024^3); else print "Error: Tidak dapat menemukan informasi blok cadangan atau ukuran blok."}'Ganti /dev/[$Partition] dengan nama sebenarnya dari partisi, seperti /dev/vdb1.
Berikut adalah contoh keluaran perintah tersebut:

Anda juga dapat menggunakan rumus berikut untuk menghitung ruang disk yang dicadangkan oleh sistem: