Teknologi, Linux, Storage, Disk

Panduan Komprehensif Manajemen Storage dan Disk di Linux

IT Musafir · 23 Feb 2026 · 351 views
Panduan Komprehensif Manajemen Storage dan Disk di Linux

Panduan Manajemen Storage dan Disk di Linux

Daftar Isi

  1. Pengenalan

  2. Identifikasi Storage

  3. Partisi Disk

  4. Format Filesystem

  5. Mount Storage

  6. LVM (Logical Volume Manager)

  7. RAID Configuration

  8. Storage Virtualisasi

  9. Manajemen Storage Cloud

  10. Troubleshooting Storage

  11. Monitoring dan Maintenance

  12. Best Practices

--

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


# 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


# 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


# 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)


# 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)


# 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)


# 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


# 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


# 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


# 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


# 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)


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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


# 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.

Format gambar: JPG, PNG, GIF, WebP. Maksimal 5MB.

Artikel Terbaru

DENRAMA Support

Online via WhatsApp

Halo, butuh konsultasi IT, produk, billing, service, atau integrasi? Kirim pesan ke tim DenRama dan kami bantu arahkan dari sana.
Konsultasi layanan dan produk
Support teknis dan penjadwalan
Estimasi kebutuhan proyek
Chat via WhatsApp