Mengelola node dan disk sebagai storage yang bisa tumbuh: menambah dan mengurangi disk, menandai node non-schedulable untuk maintenance, melakukan disk eviction saat mengganti hardware, serta membuat StorageClass multi-tier yang memisahkan SSD dan HDD per node.

Di episode 9 kita berlatih simulasi kegagalan node. Episode 10 membahas sisi pertumbuhan dan perawatan infrastruktur storage: menambah disk, menggantinya, atau menonaktifkan node untuk maintenance — semua tanpa mematikan volume.
Mengapa penting? Longhorn tidak membiarkan disk statis. Seiring data tumbuh, kalian akan menambah disk baru atau mengganti disk lama yang rusak. Mampu melakukan operasi ini tanpa downtime adalah keterampilan operator yang membedakan lab dan production.
Buka dashboard → Node → pilih node → Edit Node and Disks. Kalian menambahkan disk dengan memberikan:
/mnt/longhorn2).Atau via CLI dengan manifest pada CustomResource:
kubectl -n longhorn-system get nodes.longhorn.io -o jsonpath='{.items[*].spec.disks}'Konsep kuncinya: Longhorn menghitung disk pada level node, bukan level PV. Menambah disk baru langsung membuat node punya lebih banyak kapasitas schedule-able replica.
Di UI, toggle Scheduling untuk disk tertentu:
schedulable: false → Longhorn tidak menempatkan replika baru di disk ini, tapi replika lama tetap tinggal.Gunakan ini saat menyiapkan maintenance disk tertentu tanpa langsung evict.
Untuk melepas disk: evict dulu (lihat di bawah), baru hapus dari node. Longhorn menolak menghapus disk yang masih menyimpan replika aktif — keselamatan bawaan.
Untuk maintenance node penuh (reboot, ganti kernel, perawatan fisik):
Scheduling = disabled.Perintah kubectl yang setara:
kubectl -n longhorn-system label node worker-1 node.longhorn.io/evict-node=trueSelanjutnya jalankan drain normal Kubernetes (episode 9) untuk memindahkan Pod.
Saat mengganti disk (hardware) atau mematikan node, replika di disk itu harus di-pindah dulu ke disk/node lain. Disk Eviction memindah data tiap volume secara bergantian agar tidak ada dua replika volume sama di node yang sama (untuk menghindari kehilangan kuorum).
Langkah di UI:
Eviction pada disk yang akan dilepas.Pantau status volume: semua volume harus kembali Healthy setelah eviction selesai. Untuk volume besar, eviction berlangsung berjam-jam — jadwalkan saat beban rendah.
Longhorn memungkinkan beberapa disk berbeda tipe dalam node yang sama — SSD cepat dan HDD kapasitas. Untuk mengarahkan volume ke tipe tertentu, kita gunakan StorageClass + node labels:
diskSelector atau nodeSelector.apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-fast
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
numberOfReplicas: "3"
dataLocality: "best-effort"
diskSelector: is-ssd
replicaAntiAffinity: "true"apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn-hdd
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
numberOfReplicas: "3"
diskSelector: "is-hdd"
dataLocality: "best-effort"Label disk di UI: Edit Node → pada tiap disk beri atribut custom is-ssd=true / is-hdd=true. Longhorn memakai diskSelector untuk memfilter disk mana yang boleh dipakai volume dari StorageClass itu.
longhorn-fast (butuh IOPS).longhorn-hdd (kapasitas murah).Tip
Multi-tier bukan sekadar "disk beda kecepatan" — ia adalah isolasi performa per workload. Database dan batch processing tidak boleh saling rebut disk. Gunakan longhorn-fast untuk semua volume kritis, dan longhorn-hdd untuk volume sekunder.
Inti yang harus dibawa pulang:
diskSelector + label disk untuk isolasi performa.Di episode 11 selanjutnya kita akan membahas NetworkTopology, ReplicaPlacement & Multi-AZ — cara Longhorn menempatkan replika berdasarkan topology zone/region, anti-affinity soft/hard, serta simulasi label zone untuk HA geografis. Sampai jumpa di episode 11!