SSD Nodes Learn RAM 8GB — $66/tahun
Panduan Matt ConnorOleh Matt Connor

Apa Itu SSD VPS? Penjelasan Penyimpanan Flash

SSD VPS memakai penyimpanan flash, bukan hard disk berputar. Pahami manfaat IOPS dan latensi rendah, serta tiga pertanyaan penting sebelum membeli.

Apa yang dimaksud dengan SSD VPS?

SSD VPS adalah server privat virtual yang disknya menggunakan memori flash, bukan hard disk berputar. SSD adalah singkatan dari solid state drive, yaitu penyimpanan yang dibuat dari chip flash NAND tanpa komponen bergerak di dalamnya. VPS adalah singkatan dari virtual private server, yaitu bagian terisolasi dari mesin host fisik yang menjalankan sistem operasinya sendiri dan dijual kepada Anda seolah-olah merupakan server utuh. Jika keduanya digabungkan, label tersebut menjanjikan satu hal. Saat server membaca blok data, tidak ada komponen mekanis yang perlu bergerak terlebih dahulu.

Itulah definisi lengkapnya. Bagian berikut membahas hal-hal yang tidak dijelaskan oleh label tersebut, karena tulisan "SSD hosting" pada halaman harga hanya memberikan sedikit informasi tentang array penyimpanan yang digunakan.

Jika Anda masih memahami perbedaan VPS dengan mesin virtual biasa, perbedaan antara VPS, VM, dan VPC adalah halaman yang sebaiknya dibaca terlebih dahulu.

Mengapa penyedia hosting mengiklankan kecepatan penyimpanan, bukan kapasitas penyimpanan

Halaman paket mencantumkan inti CPU, memori, kapasitas disk, dan bandwidth, lalu menambahkan satu istilah tentang disk yang sama sekali bukan ukuran kapasitas. Penyedia hosting melakukan itu karena kapasitas sudah tidak menjadi angka yang paling penting dalam penyimpanan sejak beberapa tahun lalu. Dua angka yang menentukan respons server adalah IOPS (operasi input/output per detik) dan latensi (waktu yang diperlukan satu operasi untuk menghasilkan respons).

Perbedaan mekanis adalah penyebabnya. Hard disk menyimpan data pada platter yang berputar dan membacanya dengan head pada lengan yang bergerak. Untuk mencapai blok di lokasi lain pada platter, lengan harus melakukan seek. Setelah itu, disk harus berputar sampai sektor yang tepat berada di bawah head. Pada 7200 putaran per menit, setengah putaran rata-rata memerlukan sekitar 4 ms, dan seek menambah beberapa milidetik lagi. Flash tidak memiliki lengan atau platter, sehingga pembacaan dilakukan secara elektrik dan menghasilkan respons dalam puluhan mikrodetik.

ChartRandom 4k read, published device class specifications rather than VPS measurements
The data behind this chart
[
  {
    "device": "7200 rpm hard disk",
    "random_read_iops": "125",
    "read_latency_ms": 8
  },
  {
    "device": "SATA SSD",
    "random_read_iops": "90,000",
    "read_latency_ms": 0.15
  },
  {
    "device": "NVMe SSD",
    "random_read_iops": "600,000",
    "read_latency_ms": 0.08
  }
]

Hard disk 7200 rpm memiliki peringkat sekitar 125 pembacaan acak 4k per detik, dan setiap pembacaan memerlukan sekitar 8 ms untuk menghasilkan respons. Drive NVMe memiliki peringkat sekitar 600,000 untuk pembacaan yang sama, dengan waktu sekitar 0.08 ms per pembacaan. SATA SSD di antara keduanya memiliki peringkat sekitar 90,000. Anggap angka tersebut sebagai perbedaan beberapa orde besaran, bukan sebagai persentase peningkatan.

Ada dua peringatan terkait data tersebut. Ini adalah spesifikasi yang dipublikasikan untuk drive utuh dari setiap kelas. Jadi, angka tersebut berasal dari lembar spesifikasi produsen, bukan hasil pengukuran pada VPS. Anda juga tidak pernah mendapatkan satu drive utuh. Volume Anda adalah bagian dari satu perangkat atau bagian dari sebuah array yang berada bersama pelanggan lain pada hardware yang sama.

Kedua kolom tersebut juga menjawab pertanyaan yang berbeda, jadi bacalah secara bersamaan. Latensi adalah waktu tunggu untuk satu operasi. IOPS adalah jumlah operasi yang dapat diproses drive secara bersamaan. Flash mencapai angka IOPS yang tinggi melalui paralelisme, karena banyak chip flash menjawab banyak permintaan sekaligus sementara antrean yang panjang membuat chip tersebut tetap sibuk. Program single-threaded yang mengeluarkan satu permintaan pembacaan, menunggunya selesai, lalu mengeluarkan permintaan berikutnya tidak akan pernah mencapai angka teratas pada grafik tersebut. Program itu akan mengalami nilai pada kolom latensi.

SSD, NVMe, SATA, dan PCIe: empat istilah pada empat lapisan berbeda

Pembeli sering keliru membedakan istilah-istilah ini karena masing-masing menjelaskan bagian sistem yang berbeda.

  • SSD adalah media penyimpanan. Artinya, data disimpan pada chip flash NAND, bukan pada piringan magnetis.
  • SATA adalah antarmuka yang dirancang pada era disk mekanis. Kecepatan maksimumnya 6 Gbit/s, atau sekitar 550 MB/s untuk throughput aktual, dan antrean perintahnya menampung 32 perintah yang sedang diproses.
  • NVMe (non-volatile memory express) adalah protokol yang dirancang khusus untuk flash. Protokol ini mendukung banyak antrean yang masing-masing menampung ribuan perintah. Dengan demikian, beberapa inti CPU dapat berkomunikasi dengan drive secara bersamaan tanpa berbagi satu antrean yang terbatas.
  • PCIe (peripheral component interconnect express) adalah bus yang digunakan NVMe, dengan jenis jalur yang sama seperti yang digunakan kartu grafis.

Jadi, SSD SATA dan SSD NVMe sama-sama menyimpan data pada flash. Perbedaannya terletak pada antarmuka yang digunakan. SSD SATA tetap jauh lebih cepat daripada hard disk apa pun. Namun, antrean perintah yang berjumlah 32 membatasi jumlah pekerjaan paralel yang dapat ditanganinya, padahal pekerjaan paralel adalah keunggulan utama flash. Pilihan yang layak dibeli bergantung pada beban kerja Anda, dan perbandingan NVMe dan SSD SATA membahasnya secara menyeluruh.

Flash lokal atau penyimpanan terpasang jaringan?

Dua konfigurasi yang sangat berbeda dijual dengan istilah yang sama.

Penyimpanan lokal berarti drive flash berada di dalam host fisik yang sama dengan VPS Anda. Permintaan berjalan melalui PCIe di dalam satu mesin lalu langsung kembali. Karena itu, latensinya tetap berada pada kisaran puluhan mikrodetik.

Penyimpanan terpasang jaringan berarti disk virtual Anda berada di cluster penyimpanan terpisah, biasanya Ceph atau SAN (storage area network). Setiap operasi baca dan tulis melewati jaringan untuk mencapainya. Penyedia biasanya menyebutnya "cloud block storage" atau "elastic volumes". Flash-nya nyata. Perjalanan melalui jaringan juga nyata dan ditambahkan ke setiap operasi. Akibatnya, latensi berada pada kisaran ratusan mikrodetik tinggi atau beberapa milidetik, bukan puluhan mikrodetik.

Tidak ada pilihan yang salah. Penyimpanan jaringan tetap tersedia jika host mengalami kerusakan, karena data tidak pernah berada di host tersebut. Penyedia dapat menjalankan server Anda pada perangkat keras lain, dan disk akan mengikutinya. NVMe lokal lebih cepat dan terikat pada satu mesin fisik. Karena itu, kegagalan perangkat keras mengharuskan pemulihan dari backup. Tanyakan jenis penyimpanan yang digunakan oleh suatu paket. Hampir tidak ada yang melakukannya.

Seperti apa perbedaannya pada server nyata

Pekerjaan server sebagian besar terdiri atas pembacaan dan penulisan acak berukuran kecil, bukan transfer sekuensial yang panjang. Karena itu, angka MB/s dalam materi pemasaran adalah angka yang paling tidak berguna di halaman tersebut.

  • Commit database. Database yang menjamin durabilitas memanggil fsync saat transaksi di-commit, lalu menunggu drive mengonfirmasi bahwa data benar-benar tersimpan. Pada hard disk, waktu tunggu tersebut berlangsung dalam hitungan milidetik. Hal ini membatasi database kecil hingga sekitar ratusan commit per detik. Pada flash, waktu tunggu yang sama hanya berlangsung selama sebagian kecil milidetik. Di sinilah perbedaannya paling besar, baik Anda menjalankan PostgreSQL, MySQL, maupun SQLite sebagai database produksi.
  • Instalasi paket. apt install membongkar ribuan file kecil dan menyinkronkannya ke disk selama proses berlangsung. Hampir tidak ada pekerjaan tersebut yang bersifat sekuensial, sehingga kinerjanya dibatasi oleh IOPS.
  • Pengambilan image container. docker pull mengambil layer terkompresi melalui jaringan, lalu mengekstraknya menjadi ribuan file kecil. Pengunduhan dibatasi oleh jaringan. Ekstraksi dibatasi oleh disk. Pada volume yang lambat, ekstraksi adalah tahap yang membuat Anda harus menunggu.
  • Boot dan reboot. Proses startup membaca kernel dan initramfs, lalu ratusan file unit kecil serta shared library yang tersebar di seluruh volume.

Tidak satu pun proses tersebut merupakan pembacaan sekuensial berukuran besar. Volume yang melakukan streaming pada 500 MB/s tetapi hanya melayani 3,000 IOPS tetap akan terasa lambat selama docker compose pull, karena waktu tunggu dihitung untuk setiap file, bukan untuk setiap megabita.

Mengapa "SSD cloud hosting" pada halaman harga hampir tidak memberi informasi

Istilah tersebut hanya menjelaskan medianya. Istilah itu tidak menjelaskan antarmuka yang digunakan drive, dan tidak menjelaskan apakah drive tersebut berada di mesin yang sama dengan server Anda. Istilah itu juga tidak menjelaskan batas maksimum yang boleh dicapai oleh paket Anda.

Batas maksimum ini paling penting, tetapi paling jarang dicantumkan. Provider membatasi IOPS dan throughput per volume karena satu host melayani banyak pelanggan, dan tenant yang tidak dibatasi dapat menghabiskan sumber daya pelanggan lain. Batas beberapa ribu IOPS pada perangkat keras yang mampu mencapai ratusan ribu IOPS adalah hal yang normal dan wajar, tetapi biasanya tidak terlihat dalam deskripsi paket. Dua paket dapat sama-sama mencantumkan "SSD", sementara salah satunya menggunakan NVMe lokal tanpa batas per volume, dan yang lainnya menggunakan volume cluster bersama yang dibatasi hingga 3,000 IOPS.

Batas memiliki dua bentuk. Batas berkelanjutan adalah batas tetap yang tidak berubah. Batas burst memberi Anda baseline rendah serta kredit yang memungkinkan Anda melampauinya untuk sementara waktu. Kredit tersebut terisi kembali saat volume tidak digunakan. Batas burst dapat terlihat sangat baik dalam pengujian lima menit, lalu turun ke baseline di tengah proses impor database atau pemulihan besar. Jika provider mencantumkan angka yang besar, tanyakan berapa lama Anda diizinkan mempertahankan kecepatan tersebut.

Cara memeriksa resource yang sebenarnya diberikan VPS kepada Anda

Dari dalam guest, Anda hanya dapat melihat informasi yang diberikan hypervisor.

lsblk -d -o NAME,ROTA,MODEL,SIZE
cat /sys/block/vda/queue/rotational

Ganti vda dengan nama perangkat lsblk yang tercetak untuk disk Anda. ROTA dan file rotational membaca nilai 0 jika kernel diberi tahu bahwa perangkat tersebut bukan perangkat berputar, dan nilai 1 jika kernel diberi tahu sebaliknya. Disk virtual menetapkan flag tersebut berdasarkan informasi yang diiklankan hypervisor. Karena itu, flag tersebut menjelaskan perangkat virtual, bukan perangkat keras fisik di bawahnya. MODEL biasanya kosong untuk disk virtio seperti vda, atau berisi string umum seperti QEMU HARDDISK pada pengendali SATA yang diemulasikan. Guest tidak dirancang untuk melihat array milik host, dan memang tidak dapat melihatnya.

Karena itu, anggap flag tersebut sebagai petunjuk dan ukur aspek lainnya. Jalankan pengujian acak 4k dengan fio terhadap file pada volume, menggunakan queue depth yang benar-benar digunakan aplikasi Anda. Jalankan pengujian cukup lama hingga seluruh burst credit terpakai. Membandingkan kinerja VPS dengan benar berisi perintah fio dan kesalahan umum yang menghasilkan angka yang tampak lebih baik daripada kondisi sebenarnya.

Tiga pertanyaan yang perlu diajukan kepada penyedia sebelum membeli

  1. Apakah penyimpanan berada secara lokal pada hypervisor, atau terhubung melalui jaringan? Jawabannya menentukan batas bawah latensi Anda dan menentukan apa yang terjadi pada data ketika host fisik mengalami kegagalan. Penyedia yang menjawabnya secara jelas berarti telah mempertimbangkan hal ini.
  2. Berapa batas IOPS pada volume saya? Mintalah angkanya. "Unlimited" dan "enterprise grade" bukan angka. Jika memang tidak ada batas, tanyakan apa yang mencegah pengguna lain pada host yang sama menggunakan seluruh array selama jendela pencadangan mereka.
  3. Apakah batas tersebut bersifat berkelanjutan atau burst? Jika bersifat burst, tanyakan baseline dan durasi burst tersebut. Baseline adalah angka yang akan digunakan oleh tugas malam Anda, jadi angka inilah yang perlu dijadikan dasar perencanaan.

Apakah flash akan aus, dan apakah itu masalah Anda?

Sel flash menerima jumlah siklus penulisan yang terbatas. Karena itu, drive mencantumkan peringkat ketahanan dalam TBW (terabyte yang ditulis) atau DWPD (penulisan drive per hari). Drive menyebarkan penulisan secara merata ke seluruh selnya. Proses ini disebut wear levelling. Drive juga menyimpan blok cadangan untuk menggantikan sel yang gagal. Pada VPS, keausan tersebut menjadi tanggung jawab penyedia. Penyedia memantau penghitung SMART pada drive mereka sendiri dan mengganti perangkat keras sebelum batas ketahanan tercapai. Masalah Anda sudah ada sebelum teknologi flash. Drive bukan cadangan. Redundansi pada volume Anda juga bukan cadangan, karena redundansi menyalin penghapusan sama persis seperti menyalin data.

Pertukaran yang sebenarnya Anda lakukan adalah harga per gigabyte. Flash lebih mahal per gigabyte daripada disk berputar. Karena itu, paket SSD biasanya menawarkan kapasitas lebih kecil daripada paket hard disk dengan harga yang sama. Jika Anda memerlukan ruang besar untuk media atau arsip, pertahankan volume cepat tetap kecil dan simpan data dalam jumlah besar di lokasi yang lebih murah. Bentuk ini juga tepat untuk menyimpan cadangan di luar server. Untuk memahami posisi penyimpanan dalam keseluruhan biaya, biaya VPS sebenarnya menguraikan setiap komponen biaya.

FAQ

Apakah VPS SSD sama dengan VPS NVMe?

Setiap VPS NVMe merupakan VPS SSD karena drive NVMe menggunakan flash. Namun, hal sebaliknya tidak berlaku. Paket yang diiklankan sebagai "SSD" dapat menggunakan SSD SATA, yaitu flash melalui antarmuka yang dirancang untuk disk mekanis, dengan antrean 32 perintah dan batas kecepatan sekitar 550 MB/s. Keduanya jauh lebih cepat daripada hard disk. Jika perbedaan tersebut penting bagi beban kerja Anda, tanyakan kepada penyedia jenis drive yang digunakan paket tersebut. Jangan menentukannya hanya dari nama paket.

Apakah VPS SSD membuat situs web saya lebih cepat?

VPS SSD hanya mempercepat operasi disk. Halaman yang menjalankan beberapa kueri database pada setiap permintaan menjadi lebih cepat karena kueri dan commit tersebut merupakan I/O acak berukuran kecil. Halaman yang disajikan dari memori atau cache tidak mengakses disk saat dikirim, sehingga perubahannya sangat kecil. Ukur bagian permintaan yang lambat sebelum membayar penyimpanan untuk mengatasinya.

Bagaimana cara memeriksa apakah VPS saya benar-benar menggunakan penyimpanan SSD?

Dari dalam guest, Anda tidak dapat memverifikasi perangkat keras fisiknya. lsblk -d -o NAME,ROTA menampilkan jenis perangkat virtual yang diiklankan, dan hypervisor menentukan nilai tersebut. Jadi, 0 di sana merupakan petunjuk, bukan bukti. Pemeriksaan praktis dilakukan melalui pengukuran: jalankan fio dengan beban kerja pembacaan acak 4k selama beberapa menit, lalu periksa latensi yang dilaporkan. Pembacaan acak dengan latensi satu digit milidetik menunjukkan disk berputar atau volume jaringan yang mengalami kepadatan. Latensi puluhan mikrodetik menunjukkan flash lokal.

Apakah penyimpanan SSD yang terhubung melalui jaringan lebih buruk daripada NVMe lokal?

Penyimpanan tersebut lebih lambat untuk setiap operasi dan mengalami kegagalan dengan cara yang berbeda. Round trip jaringan ditambahkan ke setiap pembacaan dan penulisan, sehingga latensinya lebih tinggi meskipun keduanya menggunakan flash. Sebagai gantinya, data Anda tidak berada pada satu host fisik. Jadi, kegagalan host tidak ikut menyebabkan volume tidak tersedia, dan snapshot serta migrasi langsung lebih mudah dilakukan oleh penyedia. Pilih flash lokal untuk database yang sensitif terhadap latensi. Pilih penyimpanan jaringan jika keberlangsungan volume lebih penting daripada mikrodetik.

#vps#ssd#nvme#storage#hosting-basics