rizaldy.club/content/NAS.md
2024-03-02 02:47:18 +07:00

6.9 KiB

tags
evergreen
homelab

Dulu sekitar tahun 2017 saya tidak terlalu peduli dengan kepemilikan data. Saya hampir tidak menyimpan atau bahkan memiliki data yang dianggap penting, persetan foto; video, dokumen — segalanya ephemeral dan on-demand.

Pernyataan diatas yang membuat saya tidak pernah mempertimbangkan bagian penyimpanan di setiap perangkat yang akan saya beli. Sampai hari ini, saya selalu memilih perangkat dengan kapasitas penyimpanan terendah karena saya yakin bahkan sampai 60% kapasitasnya saja tidak akan pernah saya capai.

Lalu beberapa hal berubah.

Pertama, saya ingin meninggalkan penyewaan. Menggunakan penyimpanan awan gampangnya adalah "menyimpan di komputer lain" dan penyedia layanan penyimpanan awan yang saya gunakan pada saat itu lumayan terpercaya: iCloud. iCloud (atau iCloud Drive) mendukung E2EE via ADP; memiliki waktu aktif sistem yang reliable dan aksesnya pun relatif cepat. Saya merekomendasikan iCloud nya Apple untuk siapapun yang ingin menggunakan penyimpanan awan. Harganya pun relatif murah dangan sangat kompetitif!

Kedua, saya berinvestasi lebih ke Homelab saya. Saya sudah melakukan self-hosting sejak 2016 dan memiliki homelab ala-ala sendiri semenjak 2020, I guess? Tujuannya, untuk memiliki "internet" sendiri, namun tujuan lainnya untuk bersenang-senang dan belajar.

Kapasitas penyimpanan yang dimiliki "server" saya relatif terbatas, antara 100-265 GB (NVMe). Untuk skala homelab kecil, kisaran kapasitas tersebut relatif cukup. Sampai menjadi tidak cukup :))

Terakhir, saya mulai melakukan pengarsipan. Aktivitas ini termotivasi setelah melihat isi dari HDD external (alm) papah saya dan saya cukup terkesan bagaimana beliau memiliki koleksi/arsip/dokumentasi informasi dari beliau muda (30 tahunan?) sampai saat terakhir beliau bekerja (pensiun). Bahkan salinan digital akte saya pun ada disana.

Saya ingin mengarsipkan apapun. Literally apapun. Informasi, artikel, dokumen, foto, video, apapun yang saya minati. Perihal penting atau tidak penting, itu urusan nanti. Pada akhirnya kita akan tahu mana yang penting atau tidak penting setelah memiliki keduanya, bukan?

Hardware

Yang membedakan "NAS" dengan "server biasa" adalah NAS dimaksudkan untuk beban kerja penyimpanan sedangkan server biasa untuk beban kerja sebuah server pada umumnya. Itulah salah satu alasan saya memilih hardware yang khusus dibuat untuk itu dan saya tidak memiliki cukup waktu dan pengetahuan untuk merakit sendiri.

Produk dari Synology saya pilih karena beberapa alasan pribadi. Alternatif yang ada di pasaran adalah QNAP dan setelah riset sedikit, saya lebih memilih Synology.

Saya memilih varian DS224+ karena menurut saya pribadi relatif cocok untuk pemula dan khususnya untuk kebutuhan saya:

  • 2 drive bays dan hot swappable
  • 2 gigabit ethernet ports
  • 2 CPU dan 2 GB memory (bisa di-upgrade sampai maksimal 6 GB)

Juga ada 2 port USB 3.2 Gen 1 untuk akses ke penyimpanan eksternal sebagai tambahan.

Harganya relatif terjangkau, sekitar 5.7jt saat saya membeli pada saat itu (harga promo natal!)

OS

Synology DS224+ saya menggunakan DiskStation Manager sebagai OS nya yang mana adalah GNU/Linux. Sebelumnya saya pernah menggunakan alternatif lain seperti:

  • FreeNAS/TrueNAS (FreeBSD)
  • TrueNAS Scale (GNU/Linux)

Yang mana menggunakan file system ZFS dan sistem operasi FreeBSD. Secara pengalaman pengguna saya kurang merekomendasikan jika untuk pemula seperti saya namun sangat powerful bila sudah cukup ahli khususnya bila sudah familiar dengan sistem operasi *BSD.

File System

DSM menggunakan btrfs, berbeda dengan "server biasa" yang umumnya menggunakan ext4. Btrfs menawarkan deduplication, compression, snapshot, native RAID, dll.

RAID 1 (mirroring) saya pilih karena saya menggunakan pendekatan 3-2-1 backup.

DSM mendukung encryption at-rest menggunakan standar Linux Unified Key Setup (LUKS), ini berguna untuk melindungi data bila HDD diakses melalui tempat yang tidak seharusnya.

Hard Disk Drive (HDD)

Saya memilih kapasitas 2 TB (1.8 TiB) yang menurut saya tidak terlalu besar tapi tidak terlalu kecil juga. Ya somewhat di tengah-tengah, lah.

Total penyimpanan (dari 4 TB, 2 drive) yang bisa digunakan pada dasarnya adalah 1.8 TiB, dan sisa 18.6 GiB nya digunakan untuk sistem.

HDD yang saya gunakan:

Masing-masing memiliki rpm yang sama (5400), cache dari 64-256 MB, dan batas beban kerja 180 TB/tahun. Untuk kapasitas 2 TB, gampangnya, batas beban kerjanya berarti sampai 90 tahun.

Pengelolaan Beban Kerja

Dari segi performa baca/tulis, tentu berbeda dengan kekuatan Solid State Drive (SSD) jika dibandingkan dengan HDD. SSD laptop saya (NVMe) untuk baca/tulis bisa sampai 2-4 GB/s, angka yang cukup mengesankan jika dibandingkan dengan mesin virtual yang disewakan oleh penyedia cloud.

Sayangnya, untuk model Synology yang saya gunakan tidak memiliki slot NVMe sehingga tidak bisa menambahkan SSD sebagai media cache. Memory yang dimiliki pun sangat terbatas, dan memaksimalkan penggunaan swap hanya akan membuatnya lebih buruk.

Karena hal itu, NAS—untuk keperluan beban kerja server—saya gunakan sebagai "warm storage" dan akan selalu ada lapisan lain diatasnya. Misal, object storage server MinIO. Bukan hal yang bagus untuk menjalankan MinIO di NAS1. MinIO memiliki fitur Tiering untuk memindahkan object ke tempat lain. Berbeda dengan Replication yang singkatnya setiap server memiliki salinannya, tiering, singkatnya, si server utama menyimpan metadata dan akan mengaksesnya ke server kedua hanya saat dibutuhkan ("warm"). Bagian menariknya, si "server kedua" tersebut bisa ditaruh dibelakang caching proxy agar lebih efektif.

Selain itu, saya memaksimalkan penggunaan Network File System (NFS) sebisa mungkin, dan, ya, sebagai warm storage juga. Ini digunakan untuk beban kerja yang I/O intensive (seperti video transcoding) yang baru hasilnya disimpan di NAS melalui NFS tersebut.

Satu-satunya yang tidak saya simpan di NAS adalah database SQLite karena masalah dengan FSYNC, kecuali untuk kebutuhan backup (cold).

File Sharing Protocols

Pendekatan saya cukup sederhana: Jika di perangkat pribadi, gunakan Samba (SMB/CIFS), selainnya, NFS. Saya tidak menggunakan FTP(s), SFTP ataupun AFP untuk mengurangi kompleksitas yang tidak perlu. Untuk perihal performa, relatif tidak terlalu mencolok.

Setiap client (NFS) memiliki pengguna khusus untuk alasan keamanan dan akses di restrict berdasarkan alamat IP nya, relatif standar. Selain itu, akses SMB hanya bisa melalui LAN dan Tailnet.

Storage Area Network (SAN)

Mungkin perlu halaman khusus untuk ini...