> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skanesgalab.my.id/llms.txt
> Use this file to discover all available pages before exploring further.

# Manajemen Storage: ZFS, LVM, RAID, NFS & Samba

> Mendalami teknologi penyimpanan di Proxmox VE: konsep File-level vs Block-level, perbandingan mendalam ZFS, LVM/LVM-Thin, Hardware vs Software RAID, NFS, dan Samba/SMB.

## Pengantar Manajemen Penyimpanan di Proxmox VE

Dalam lingkungan virtualisasi enterprise maupun homelab, pemilihan teknologi media penyimpanan (*storage*) adalah keputusan paling krusial. Pemilihan storage yang keliru dapat menyebabkan performa VM lambat (*high I/O delay*), kehilangan data saat listrik padam, hingga ketidakmampuan melakukan snapshot atau migrasi VM tanpa waktu henti (*live migration*).

Secara fundamental, Proxmox VE membagi penyimpanan menjadi dua kategori utama:

1. **Block-Level Storage:** Menyimpan data dalam bentuk blok biner mentah (tanpa sistem berkas OS). Sangat cepat dan cocok untuk virtual disk VM (`.raw`). Contoh: LVM, ZFS.
2. **File-Level Storage:** Menyimpan data di atas sistem berkas standar (*filesystem*). Fleksibel dan cocok untuk file ISO installer, backup arsip (`vzdump`), dan template LXC. Contoh: Directory, NFS, Samba/CIFS.

***

## 1. ZFS (Zettabyte File System)

**ZFS** adalah kombinasi antara *Volume Manager* dan *File System* generasi modern yang dirancang oleh Sun Microsystems dengan fokus utama pada **integritas data mutlak** dan **kinerja tinggi**.

```mermaid theme={null}
flowchart TD
    ZFS["ZFS Storage Pool (zpool)"]
    ZFS --> COW["Copy-on-Write (COW)\nData tidak pernah ditimpa langsung; aman dari listrik padam"]
    ZFS --> ARC["ARC (Adaptive Replacement Cache)\nMenggunakan RAM sebagai Read Cache super cepat"]
    ZFS --> SelfHeal["Self-Healing & Checksumming\nMendeteksi & memperbaiki silent data corruption otomatis"]
    ZFS --> Snap["Instant Snapshots\nSnapshot ukuran 0 detik tanpa jeda I/O"]
```

### Karakteristik & Fitur Unggulan ZFS:

* **Copy-on-Write (CoW):** Saat data diubah, ZFS menulis blok baru di lokasi kosong sebelum memindahkan penunjuk pointer. Jika server mati mendadak saat menulis file, sistem berkas tidak akan pernah korup.
* **Self-Healing & Checksum:** Setiap blok data diverifikasi dengan checksum hash. Jika terjadi kerusakan magnetik (*bit rot*) pada piringan harddisk, ZFS otomatis mengambil salinan sehat dari disk mirror dan memperbaiki blok yang rusak.
* **Snapshot & Replikasi Instan:** Membuat snapshot VM dalam hitungan milidetik dan dapat mereplikasi data ke server Proxmox kedua (*ZFS Send/Receive*).
* **Kompresi Bawaan:** Mendukung kompresi algoritma LZ4/ZSTD secara real-time yang menghemat kapasitas disk hingga 30-50% sekaligus meningkatkan performa baca.

> **Catatan Krusial ZFS (RAM Heavy):**\
> ZFS membutuhkan RAM yang besar untuk cache ARC (*aturan umum: 1 GB RAM per 1 TB kapasitas storage*). **Jangan pernah menggunakan ZFS di atas Hardware RAID Controller!** ZFS harus memiliki akses langsung ke disk fisik (mode HBA / IT-Mode).

***

## 2. LVM & LVM-Thin (Logical Volume Manager)

**LVM** adalah teknologi manajemen partisi dinamis standar pada kernel Linux yang menggabungkan banyak harddisk fisik (*Physical Volumes*) menjadi satu kesatuan ruang besar (*Volume Group*), lalu membaginya menjadi partisi virtual (*Logical Volumes*).

### Perbedaan LVM Tradisional vs LVM-Thin di Proxmox:

| Parameter | LVM Tradisional | LVM-Thin (Standar Default PVE) |
| :- | :- | :- |
| **Alokasi Kapasitas** | *Thick Provisioning*: Alokasi disk 50GB langsung memotong 50GB kapasitas fisik harddisk saat itu juga. | *Thin Provisioning*: Disk virtual 50GB hanya memakan kapasitas fisik sesuai jumlah data yang terisi di dalamnya (misal baru terisi 4GB, maka fisik hanya terpakai 4GB). |
| **Snapshot VM** | Tidak mendukung snapshot virtual machine. | **Mendukung snapshot VM/LXC secara native.** |
| **Over-provisioning** | Tidak bisa membuat VM melebihi kapasitas harddisk fisik. | Bisa membuat total kapasitas virtual lebih besar dari kapasitas fisik (harus dipantau agar disk fisik tidak 100% penuh). |

***

## 3. RAID (Redundant Array of Independent Disks)

RAID adalah teknik menggabungkan beberapa harddisk fisik menjadi satu unit logis untuk tujuan **kecepatan (*performance*)**, **toleransi kegagalan (*redundancy*)**, atau keduanya.

```mermaid theme={null}
flowchart TD
    RAIDType["Tipe-Tipe Konfigurasi RAID Populer"]
    RAIDType --> R0["RAID 0 (Striping)\n- Kecepatan: 2x\n- Redundancy: TIDAK ADA (1 disk mati = data lenyap!)\n- Kapasitas: 100%"]
    RAIDType --> R1["RAID 1 / ZFS Mirror\n- Kecepatan: Baca cepat, Tulis normal\n- Redundancy: Tahan 1 disk mati\n- Kapasitas: 50%"]
    RAIDType --> R5["RAID 5 / ZFS RAIDZ-1\n- Minimal 3 disk (1 disk untuk parity)\n- Redundancy: Tahan 1 disk mati\n- Kapasitas: (N-1)"]
    RAIDType --> R10["RAID 10 / ZFS Stripe of Mirrors\n- Kombinasi RAID 1 + RAID 0 (Minimal 4 disk)\n- Standar Terbaik Database & Enterprise Virtualization"]
```

### Hardware RAID vs Software RAID (ZFS)

* **Hardware RAID:** Menggunakan kartu PCIe fisik khusus (*Dedicated RAID Controller* seperti MegaRAID / PERC) dengan baterai cache (*BBU*). Pembebanan kalkulasi dilakukan di chip kartu, bukan di CPU server.
* **Software RAID (ZFS / mdadm):** Dikelola langsung oleh sistem operasi dan prosesor utama. Jauh lebih fleksibel, tidak terikat vendor hardware (jika motherboard server terbakar, harddisk tinggal dicolokkan ke komputer mana saja dan ZFS pool bisa langsung dibaca).

***

## 4. NFS (Network File System)

**NFS** adalah protokol berbagi berkas (*network share*) berbasis jaringan standar di lingkungan Unix/Linux.

* **Karakteristik:** Sangat ringan, overhead CPU rendah, dan performa throughput sangat kencang di jaringan lokal.
* **Penerapan di Proxmox:** Sangat ideal digunakan sebagai **Penyimpanan Terpusat Bersama (*Shared Storage*)** antar-node Proxmox.
* **Keunggulan Utama:** Jika beberapa server Proxmox dihubungkan ke server NFS Storage yang sama, kamu dapat melakukan **Live Migration VM** (memindahkan VM yang sedang menyala dari Node 1 ke Node 2 dalam hitungan detik tanpa memutus koneksi pengguna!).

***

## 5. Samba / CIFS (Server Message Block)

**Samba** adalah implementasi open-source dari protokol SMB yang digunakan untuk berbagi berkas dan printer, terutama antara sistem Linux dan Windows.

* **Karakteristik:** Kompatibel dengan semua sistem operasi (Windows, Linux, macOS). Mendukung autentikasi berbasis akun user, password, dan integrasi Active Directory / LDAP.
* **Kapan Menggunakan Samba di Proxmox?**
  * Menyambungkan Proxmox ke perangkat NAS rumah/kantor (seperti Synology, QNAP, atau TrueNAS) yang sudah menyediakan share SMB.
  * Menyimpan file ISO installer Windows/Linux yang sering diunduh dari laptop admin berbasis Windows.

***

## Ringkasan Matriks: Kapan Menggunakan Masing-Masing Storage?

| Skenario Kebutuhan | Teknologi yang Tepat | Alasan Pemilihan |
| :- | :- | :- |
| **Virtual Disk VM (Database & I/O Tinggi)** | **ZFS (Mirror / RAID10)** | Data aman dari korupsi, snapshot cepat, dan caching RAM super kencang. |
| **Server dengan Single SSD Hemat RAM** | **LVM-Thin** | Ringan, hemat memori, dan mendukung snapshot VM/LXC. |
| **Cluster Proxmox HA (Live Migration VM)** | **NFS Terpusat / Ceph** | Shared storage yang dapat diakses oleh semua node kluster secara bersamaan. |
| **Tempat Menyimpan ISO & Backup VZDump** | **NFS / Samba (NAS)** | File-level storage fleksibel dengan kapasitas besar dan biaya terjangkau. |
| **Server dengan Hardware RAID Controller Lama** | **LVM di atas HW RAID** | Jangan gunakan ZFS di atas hardware RAID; gunakan LVM untuk stabilitas controller. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.