Professional IT Partner
Digital Knowledge Base

Panduan Komprehensif Manajemen Storage dan Disk di Linux

I
IT Musafir
23 Feb 2026, 21:10
64 Views
14 Menit Baca
2,617 Kata
Panduan Komprehensif Manajemen Storage dan Disk di Linux
Teknologi, Linux, Storage, Disk
14 Menit
2,617 Kata
## Pengenalan Manajemen storage dan disk adalah kemampuan fundamental dalam administrasi sistem Linux. Panduan ini mencakup berbagai metode penambahan dan manajemen storage, mulai dari disk fisik hingga solusi cloud. ### Jenis Storage - **HDD (Hard Disk Drive)**: Storage magnetik tradisional dengan kapasitas besar - **SSD (Solid State Drive)**: Storage berbasis flash dengan kecepatan tinggi - **NVMe**: Storage non-volatile memory express tercepat - **Network Storage**: Storage yang diakses melalui jaringan (NFS, iSCSI) - **Cloud Storage**: Storage dari provider cloud (AWS S3, Google Cloud Storage) --- ## Identifikasi Storage ### Melihat Disk yang Terdeteksi ```bash # Daftar semua disk lsblk sudo fdisk -l # Informasi detail disk sudo hdparm -I /dev/sda sudo smartctl -i /dev/sda # Melihat ukuran dan penggunaan df -h ls -lh /dev/sd* # Informasi sistem file sudo blkid ``` ### Monitoring Storage Real-time ```bash # Monitoring penggunaan disk watch -n 1 df -h # Monitoring I/O disk iotop sudo iostat -x 1 # Melihat aktivitas disk sudo dmesg | grep -i scsi sudo dmesg | grep -i ata ``` ### Identifikasi Storage Baru ```bash # Scan untuk disk baru sudo rescan-scsi-bus.sh echo "- - -" > /sys/class/scsi_host/host0/scan # Periksa perubahan sudo partprobe sudo udevadm trigger ``` --- ## Partisi Disk ### Menggunakan fdisk (MBR) ```bash # Partisi disk dengan fdisk sudo fdisk /dev/sdb # Perintah dalam fdisk: # n - buat partisi baru # p - partisi primer # e - partisi extended # l - partisi logical # d - hapus partisi # w - tulis perubahan # q - keluar tanpa menyimpan # Contoh membuat partisi primer Command: n Partition type: p Partition number: 1 First sector: (default) Last sector: +100G # atau enter untuk seluruh disk Command: w ``` ### Menggunakan gdisk (GPT) ```bash # Partisi disk dengan gdisk (untuk disk >2TB) sudo gdisk /dev/sdb # Perintah dalam gdisk: # n - buat partisi baru # d - hapus partisi # p - tampilkan partisi # w - tulis perubahan # q - keluar # Contoh membuat partisi GPT Command: n Partition number: (default) First sector: (default) Last sector: +500G Hex code: 8300 # Linux filesystem Command: w ``` ### Menggunakan parted (Advanced) ```bash # Partisi dengan parted sudo parted /dev/sdb # Mode interaktif parted (parted) mklabel gpt (parted) mkpart primary 0% 100% (parted) print (parted) quit # Partisi non-interaktif sudo parted -s /dev/sdb mklabel gpt sudo parted -s /dev/sdb mkpart primary ext4 0% 100% ``` --- ## Format Filesystem ### Format Filesystem Linux ```bash # Format ext4 (recommended) sudo mkfs.ext4 /dev/sdb1 sudo mkfs.ext4 -L "DataDisk" /dev/sdb1 # dengan label # Format XFS (untuk file besar) sudo mkfs.xfs /dev/sdb1 sudo mkfs.xfs -f /dev/sdb1 # force overwrite # Format Btrfs (modern features) sudo mkfs.btrfs /dev/sdb1 sudo mkfs.btrfs -L "BtrfsPool" /dev/sdb1 # Format ext3 (legacy) sudo mkfs.ext3 /dev/sdb1 # Format dengan opsi kustom sudo mkfs.ext4 -m 1 -L "Data" /dev/sdb1 # reserved space 1% ``` ### Format Filesystem Lainnya ```bash # NTFS (untuk dual-boot Windows) sudo mkfs.ntfs /dev/sdb1 sudo mkfs.ntfs -f /dev/sdb1 # fast format # VFAT (untuk USB/compatibility) sudo mkfs.vfat /dev/sdb1 sudo mkfs.vfat -F 32 /dev/sdb1 # FAT32 # Swap sudo mkswap /dev/sdb1 sudo swapon /dev/sdb1 ``` ### Opsi Format Lanjutan ```bash # Format dengan UUID spesifik sudo mkfs.ext4 -U "custom-uuid-here" /dev/sdb1 # Format dengan block size kustom sudo mkfs.ext4 -b 4096 /dev/sdb1 # Format XFS dengan allocation group sudo mkfs.xfs -d agcount=4 /dev/sdb1 # Format Btrfs dengan compression sudo mkfs.btrfs -L "Compressed" -O compress=zstd /dev/sdb1 ``` --- ## Mount Storage ### Mount Manual ```bash # Buat mount point sudo mkdir /mnt/data # Mount filesystem sudo mount /dev/sdb1 /mnt/data # Mount dengan opsi spesifik sudo mount -t ext4 /dev/sdb1 /mnt/data sudo mount -o rw,exec,auto /dev/sdb1 /mnt/data # Mount dengan label sudo mount -L "DataDisk" /mnt/data # Mount dengan UUID sudo mount UUID="uuid-here" /mnt/data ``` ### Mount Otomatis (fstab) ```bash # Backup fstab sudo cp /etc/fstab /etc/fstab.backup # Tambahkan entry ke fstab echo "UUID=$(sudo blkid -s UUID -o value /dev/sdb1) /mnt/data ext4 defaults 0 2" | sudo tee -a /etc/fstab # Atau edit manual sudo nano /etc/fstab # Contoh entry fstab: UUID=1234-abcd-5678-efgh /mnt/data ext4 defaults,noatime 0 2 /dev/sdb1 /mnt/backup ext4 defaults 0 2 LABEL=DataDisk /mnt/data ext4 rw,exec,auto 0 2 # Test fstab sudo mount -a ``` ### Opsi Mount Lanjutan ```bash # Mount dengan opsi performa sudo mount -o noatime,nodiratime /dev/sdb1 /mnt/data # Mount dengan compression (Btrfs) sudo mount -o compress=zstd /dev/sdb1 /mnt/data # Mount dengan quota sudo mount -o usrquota,grpquota /dev/sdb1 /mnt/data # Mount read-only sudo mount -o ro /dev/sdb1 /mnt/data # Mount dengan permissions spesifik sudo mount -o uid=1000,gid=1000,umask=002 /dev/sdb1 /mnt/data ``` ### Mount Network Storage ```bash # NFS mount sudo mkdir /mnt/nfs sudo mount -t nfs server:/path/to/share /mnt/nfs # CIFS/SMB mount sudo mkdir /mnt/smb sudo mount -t cifs //server/share /mnt/smb -o username=user,password=pass # iSCSI mount sudo iscsiadm -m discovery -t st -p target-ip sudo iscsiadm -m node -T target-name -p target-ip --login sudo mount /dev/sdb1 /mnt/iscsi ``` --- ## LVM (Logical Volume Manager) ### Konsep LVM - **PV (Physical Volume)**: Disk atau partisi fisik - **VG (Volume Group)**: Kumpulan PV - **LV (Logical Volume)**: Partisi virtual yang bisa di-resize ### Setup LVM Dasar ```bash # Install LVM tools sudo apt install lvm2 # Ubuntu/Debian sudo dnf install lvm2 # CentOS/RHEL # Buat Physical Volume sudo pvcreate /dev/sdb sudo pvcreate /dev/sdc # Buat Volume Group sudo vgcreate vg_data /dev/sdb /dev/sdc # Buat Logical Volume sudo lvcreate -L 100G -n lv_data vg_data sudo lvcreate -l 100%FREE -n lv_backup vg_data # Format dan mount sudo mkfs.ext4 /dev/vg_data/lv_data sudo mkdir /mnt/lvm_data sudo mount /dev/vg_data/lv_data /mnt/lvm_data ``` ### Manajemen LVM Lanjutan ```bash # Extend Logical Volume sudo lvextend -L +50G /dev/vg_data/lv_data sudo lvextend -l +100%FREE /dev/vg_data/lv_data # Resize filesystem (ext4) sudo resize2fs /dev/vg_data/lv_data # Resize filesystem (XFS) sudo xfs_growfs /mnt/lvm_data # Shrink Logical Volume (ext4 only) sudo umount /mnt/lvm_data sudo e2fsck -f /dev/vg_data/lv_data sudo resize2fs /dev/vg_data/lv_data 50G sudo lvreduce -L 50G /dev/vg_data/lv_data sudo mount /dev/vg_data/lv_data /mnt/lvm_data # Tambah PV ke VG sudo pvcreate /dev/sdd sudo vgextend vg_data /dev/sdd # Hapus LV sudo lvremove /dev/vg_data/lv_data ``` ### LVM Snapshot ```bash # Buat snapshot sudo lvcreate -L 10G -s -n lv_data_snapshot /dev/vg_data/lv_data # Mount snapshot sudo mkdir /mnt/snapshot sudo mount /dev/vg_data/lv_data_snapshot /mnt/snapshot # Restore dari snapshot sudo umount /mnt/lvm_data sudo lvconvert --merge /dev/vg_data/lv_data_snapshot # Hapus snapshot sudo lvremove /dev/vg_data/lv_data_snapshot ``` --- ## RAID Configuration ### Software RAID dengan mdadm ```bash # Install mdadm sudo apt install mdadm # Ubuntu/Debian sudo dnf install mdadm # CentOS/RHEL # Buat RAID 0 (Striping) sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc # Buat RAID 1 (Mirroring) sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc # Buat RAID 5 (Parity) sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd # Buat RAID 6 (Dual Parity) sudo mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde # Buat RAID 10 (Mirror + Stripe) sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde ``` ### Manajemen RAID ```bash # Monitor status RAID cat /proc/mdstat sudo mdadm --detail /dev/md0 # Simpan konfigurasi RAID sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf # Format RAID array sudo mkfs.ext4 /dev/md0 # Mount RAID array sudo mkdir /mnt/raid sudo mount /dev/md0 /mnt/raid # Tambahkan ke fstab echo "/dev/md0 /mnt/raid ext4 defaults 0 2" | sudo tee -a /etc/fstab ``` ### Maintenance RAID ```bash # Tambahkan spare disk sudo mdadm --add /dev/md0 /dev/sdf # Ganti disk yang gagal sudo mdadm --fail /dev/md0 /dev/sdb sudo mdadm --remove /dev/md0 /dev/sdb sudo mdadm --add /dev/md0 /dev/sdg # Grow RAID array sudo mdadm --grow /dev/md0 --raid-devices=4 # Stop RAID array sudo mdadm --stop /dev/md0 # Assemble RAID array sudo mdadm --assemble /dev/md0 /dev/sdb /dev/sdc /dev/sdd ``` --- ## Storage Virtualisasi ### ZFS Filesystem ```bash # Install ZFS sudo apt install zfsutils-linux # Ubuntu/Debian sudo dnf install zfs # CentOS/RHEL # Buat ZFS pool sudo zpool create tank /dev/sdb /dev/sdc # Buat ZFS dataset sudo zfs create tank/data sudo zfs create tank/backup # Set properties ZFS sudo zfs set compression=lz4 tank/data sudo zfs set atime=off tank/data sudo zfs set quota=100G tank/data # Mount point ZFS sudo zfs set mountpoint=/mnt/data tank/data sudo zfs set mountpoint=/mnt/backup tank/backup # Snapshot ZFS sudo zfs snapshot tank/data@today sudo zfs snapshot tank/data@yesterday # Restore dari snapshot sudo zfs rollback tank/data@yesterday # Clone snapshot sudo zfs clone tank/data@today tank/data-clone ``` ### Btrfs Advanced Features ```bash # Buat Btrfs filesystem sudo mkfs.btrfs /dev/sdb /dev/sdc # Mount Btrfs sudo mount /dev/sdb /mnt/btrfs # Buat subvolume sudo btrfs subvolume create /mnt/btrfs/data sudo btrfs subvolume create /mnt/btrfs/backup # Snapshot subvolume sudo btrfs subvolume snapshot /mnt/btrfs/data /mnt/btrfs/data-snap # List subvolumes sudo btrfs subvolume list /mnt/btrfs # Delete subvolume sudo btrfs subvolume delete /mnt/btrfs/data-snap # Defragmentasi sudo btrfs filesystem defragment /mnt/btrfs/data # Balance filesystem sudo btrfs balance start /mnt/btrfs ``` --- ## Manajemen Storage Cloud ### AWS S3 dengan s3cmd ```bash # Install s3cmd sudo apt install s3cmd pip install s3cmd # Konfigurasi s3cmd s3cmd --configure # Upload file ke S3 s3cmd put local-file.txt s3://bucket-name/ # Download dari S3 s3cmd get s3://bucket-name/remote-file.txt # Sync direktori s3cmd sync /local/dir/ s3://bucket-name/remote-dir/ # List S3 buckets s3cmd ls # List isi bucket s3cmd ls s3://bucket-name/ # Hapus file s3cmd del s3://bucket-name/file.txt ``` ### Google Cloud Storage dengan gsutil ```bash # Install gsutil curl https://sdk.cloud.google.com | bash exec -l $SHELL gcloud init # Upload file gsutil cp local-file.txt gs://bucket-name/ # Download file gsutil cp gs://bucket-name/remote-file.txt . # Sync direktori gsutil -m rsync -r /local/dir/ gs://bucket-name/remote-dir/ # List buckets gsutil ls # List isi bucket gsutil ls gs://bucket-name/ # Hapus file gsutil rm gs://bucket-name/file.txt ``` ### Azure Blob Storage dengan azcopy ```bash # Install azcopy wget -O azcopy_v10.tar.gz https://aka.ms/downloadazcopy-v10-linux tar -xf azcopy_v10.tar.gz sudo cp ./azcopy*/azcopy /usr/bin/ # Upload file azcopy copy "local-file.txt" "https://account.blob.core.windows.net/container/" # Download file azcopy copy "https://account.blob.core.windows.net/container/file.txt" "local-file.txt" # Sync direktori azcopy sync "/local/dir" "https://account.blob.core.windows.net/container/remote-dir" # List container azcopy list "https://account.blob.core.windows.net/" ``` --- ## Troubleshooting Storage ### Disk Tidak Terdeteksi ```bash # Periksa koneksi fisik sudo dmesg | grep -i scsi sudo dmesg | grep -i ata sudo lsscsi # Scan untuk disk baru sudo rescan-scsi-bus.sh echo "- - -" > /sys/class/scsi_host/host0/scan # Periksa kernel modules lsmod | grep -E "(sd|scsi|ata)" sudo modprobe sd_mod sudo modprobe scsi_mod # Restart storage services sudo systemctl restart udev sudo udevadm trigger sudo udevadm settle ``` ### Partisi Tidak Bisa Dihapus ```bash # Unmount partisi sudo umount /dev/sdb1 sudo umount -l /dev/sdb1 # force unmount # Hentikan proses yang menggunakan partisi sudo fuser -km /dev/sdb1 sudo lsof /dev/sdb1 # Clear partition table sudo wipefs -a /dev/sdb sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1 # Gunakan gdisk untuk clear sudo gdisk /dev/sdb Command: x # expert mode Command: z # zap partition table ``` ### Mount Gagal ```bash # Periksa filesystem sudo fsck /dev/sdb1 sudo fsck -y /dev/sdb1 # auto-repair # Periksa filesystem type sudo blkid /dev/sdb1 file -s /dev/sdb1 # Repair filesystem spesifik sudo fsck.ext4 -y /dev/sdb1 sudo xfs_repair /dev/sdb1 sudo btrfs check /dev/sdb1 # Mount dengan opsi debug sudo mount -v /dev/sdb1 /mnt/data sudo mount -o ro /dev/sdb1 /mnt/data # read-only untuk recovery ``` ### Performa Storage Lambat ```bash # Benchmark disk sudo hdparm -Tt /dev/sdb sudo dd if=/dev/zero of=/tmp/test bs=1G count=1 oflag=direct # Periksa I/O bottleneck sudo iostat -x 1 10 sudo iotop # Optimasi filesystem sudo tune2fs -o journal_data_writeback /dev/sdb1 sudo tune2fs -O ^has_journal /dev/sdb1 # disable journaling # Defragmentasi sudo e4defrag /dev/sdb1 sudo btrfs filesystem defragment /mnt/btrfs ``` ### LVM Issues ```bash # Periksa status LVM sudo vgdisplay sudo lvdisplay sudo pvdisplay # Repair LVM sudo vgcfgrestore vg_data sudo pvscan sudo vgscan # Aktifkan volume group sudo vgchange -ay vg_data # Extend logical volume error sudo lvextend -L +10G /dev/vg_data/lv_data sudo resize2fs /dev/vg_data/lv_data ``` ### RAID Issues ```bash # Periksa status RAID cat /proc/mdstat sudo mdadm --detail /dev/md0 # Rebuild array sudo mdadm --assemble /dev/md0 # Ganti disk gagal sudo mdadm --fail /dev/md0 /dev/sdb sudo mdadm --remove /dev/md0 /dev/sdb sudo mdadm --add /dev/md0 /dev/sdc # Check consistency sudo echo check > /sys/block/md0/md/sync_action ``` --- ## Monitoring dan Maintenance ### Monitoring Storage Usage ```bash # Script monitoring storage #!/bin/bash # storage_monitor.sh echo "=== Storage Usage Report ===" echo "Tanggal: $(date)" echo "" # Disk usage df -h | grep -E "^/dev/" # Inode usage df -i | grep -E "^/dev/" # LVM information sudo vgdisplay 2>/dev/null | grep "VG Name\|VG Size\|Free" # RAID status cat /proc/mdstat 2>/dev/null | grep -E "md.*raid|resync|recovery" # SMART status for disk in /dev/sd[a-z]; do if [ -b "$disk" ]; then echo "=== $disk SMART Status ===" sudo smartctl -H "$disk" 2>/dev/null | grep "test result" fi done ``` ### Automated Maintenance ```bash # Script cleanup storage #!/bin/bash # cleanup_storage.sh # Hapus file lama (>30 hari) find /tmp -type f -mtime +30 -delete find /var/log -name "*.log" -mtime +7 -delete # Clean package cache sudo apt autoremove -y sudo apt autoclean # Clear Docker unused resources docker system prune -af # Compress old logs find /var/log -name "*.log.*" -mtime +1 -exec gzip {} \; # Check filesystem for mount in $(mount | grep -E "^/dev/" | awk '{print $3}'); do echo "Checking $mount..." sudo fsck -n "$mount" 2>/dev/null done ``` ### Alert System ```bash # Script alert storage #!/bin/bash # storage_alert.sh THRESHOLD=90 EMAIL="[email protected]" for mount in $(df | grep -E "^/dev/" | awk '{print $6}'); do usage=$(df "$mount" | awk 'NR==2 {print $5}' | sed 's/%//') if [ "$usage" -gt "$THRESHOLD" ]; then echo "WARNING: $mount is ${usage}% full" | \ mail -s "Storage Alert on $(hostname)" "$EMAIL" fi done ``` --- ## Best Practices ### Security Storage ```bash # Enkripsi disk dengan LUKS sudo cryptsetup luksFormat /dev/sdb sudo cryptsetup open /dev/sdb encrypted_disk sudo mkfs.ext4 /dev/mapper/encrypted_disk sudo mount /dev/mapper/encrypted_disk /mnt/secure # Set permissions yang tepat sudo chmod 750 /mnt/data sudo chown user:group /mnt/data # Gunakan ACL untuk kontrol akses granular sudo setfacl -m u:user:rwx /mnt/data sudo getfacl /mnt/data # Audit file access sudo auditctl -w /mnt/data -p rwxa -k storage_access ``` ### Performance Optimization ```bash # Mount dengan opsi performa sudo mount -o noatime,nodiratime /dev/sdb1 /mnt/data # Tuning filesystem sudo tune2fs -o journal_data_writeback /dev/sdb1 sudo tune2fs -m 1 /dev/sdb1 # reserved space 1% # SSD optimization echo noop > /sys/block/sdb/queue/scheduler echo 0 > /sys/block/sdb/queue/rotational # I/O scheduler tuning echo deadline > /sys/block/sdb/queue/scheduler ``` ### Backup Strategy ```bash # Backup dengan rsync rsync -avh --delete /source/ /backup/ # Backup dengan tar tar -czf backup-$(date +%Y%m%d).tar.gz /data/ # Incremental backup rsync -avh --link-dest=/backup/yesterday /source/ /backup/today/ # Backup ke cloud aws s3 sync /data/ s3://backup-bucket/data/ ``` ### Documentation ```bash # Dokumentasi storage setup cat > /etc/storage_info.md << EOF # Storage Configuration Documentation ## Physical Disks - /dev/sdb: 1TB SSD - Data storage - /dev/sdc: 2TB HDD - Backup storage ## Partitions - /dev/sdb1: ext4, mounted at /mnt/data - /dev/sdc1: ext4, mounted at /mnt/backup ## LVM Configuration - VG: vg_data - LV: lv_data (500GB) - LV: lv_backup (1.5TB) ## RAID Arrays - /dev/md0: RAID1 (mirror) for critical data ## Mount Points - /mnt/data: ext4, noatime - /mnt/backup: ext4, defaults ## Backup Schedule - Daily: rsync to /mnt/backup - Weekly: tar to cloud storage EOF ``` --- ## Referensi Cepat ### Perintah Esensial ```bash # Identifikasi storage lsblk fdisk -l df -h # Partisi fdisk /dev/sdb gdisk /dev/sdb parted /dev/sdb # Format mkfs.ext4 /dev/sdb1 mkfs.xfs /dev/sdb1 mkfs.btrfs /dev/sdb1 # Mount mount /dev/sdb1 /mnt/data umount /mnt/data # LVM pvcreate /dev/sdb vgcreate vg_name /dev/sdb lvcreate -L 10G -n lv_name vg_name # RAID mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc # Monitoring iostat -x 1 iotop df -h ``` ### Filesystem Comparison | Filesystem | Max Size | Max File Size | Features | Use Case | |------------|----------|---------------|----------|----------| | ext4 | 1EB | 16TB | Journaling, ACL | General purpose | | XFS | 8EB | 8EB | Large files, allocation groups | Large files, databases | | Btrfs | 16EB | 16EB | Snapshots, compression | Modern features | | ZFS | 256ZB | 16ZB | Snapshots, compression, dedup | Enterprise, data integrity | --- ## Kesimpulan Manajemen storage yang efektif memerlukan pemahaman tentang berbagai teknologi dan metode. Pilih solusi yang sesuai dengan kebutuhan spesifik Anda, pertimbangkan faktor performa, keandalan, dan biaya. Selalu lakukan backup sebelum melakukan perubahan pada storage, dan monitor kesehatan disk secara berkala untuk mencegah kehilangan data.

Review Pembaca

Beri penilaian dan komentar untuk artikel ini.

4.7 (10 review)
Arif Hidayat
26 Feb 2026

Bahasanya ringan tapi tetap mendalam.

Nabila Putri
26 Feb 2026

Sangat informatif, terima kasih sudah berbagi.

Rina Marlina
26 Feb 2026

Sangat informatif, terima kasih sudah berbagi.

Dimas Ardiansyah
26 Feb 2026

Materinya up to date dan terstruktur.

Budi Santoso
26 Feb 2026

Bagian step-by-step nya sangat membantu.