RAID 10 untuk Penyimpanan VPS: Cara Kerja dan Alasannya
Pahami RAID 1, 5, 6, dan 10, risiko saat rebuild, serta alasan VPS memilih RAID 10 untuk NVMe. Pelajari juga /proc/mdstat dan batas RAID sebagai cadangan.
Apa itu RAID 10 dan alasan penyedia VPS menggunakannya
RAID 10 adalah tata letak penyimpanan yang paling umum digunakan penyedia VPS pada drive NVMe (non-volatile memory express) tervirtualisasi. RAID 10 mencerminkan setiap drive ke drive pasangannya, lalu melakukan striping data di seluruh pasangan yang dicerminkan tersebut. Satu drive dapat rusak tanpa menghentikan array, dan proses pemulihannya hanya menyalin data dari pasangan yang masih berfungsi, bukan melakukan penghitungan ulang yang membaca setiap drive lain dalam set tersebut.
RAID adalah singkatan dari redundant array of independent disks. Fungsinya hanya satu: menjaga mesin tetap melayani permintaan saat sebuah disk rusak atau sedang diganti. Fungsi tersebut adalah ketersediaan, bukan keamanan.
RAID mereplikasi penulisan Anda. rm -rf /srv adalah penulisan. Kedua bagian mirror menghapus direktori tersebut pada milidetik yang sama, dan array tetap melaporkan status bersih setelahnya.
Ingat kalimat tersebut. Bagian selanjutnya membahas kegagalan yang dapat ditangani setiap level dan biaya yang ditimbulkannya pada setiap operasi tulis. Bagian terakhir berisi perintah untuk membaca status array pada mesin yang Anda miliki, serta jenis kegagalan yang tidak pernah ditangani RAID.
Tingkatan yang benar-benar ditemui pembeli hosting: 1, 5, 6, dan 10
Halaman paket mencantumkan sebuah angka lalu berhenti di situ. Angka tersebut menjawab dua pertanyaan: berapa banyak drive yang boleh gagal, dan berapa biaya setiap operasi tulis.
RAID 1 adalah mirror. Dua drive menyimpan blok yang identik. Setiap operasi tulis dikirim ke keduanya. Salah satu drive dapat melayani operasi baca. Satu drive dapat gagal tanpa kehilangan data, dan setengah kapasitas mentah dapat digunakan. Tidak ada parity yang perlu dihitung, sehingga jalur tulis lebih singkat.
RAID 5 menggunakan striping dengan satu blok parity untuk setiap stripe. Dengan n drive, Anda memperoleh kapasitas sebesar n-1 drive, dan array dapat bertahan tepat dari satu kegagalan. Parity tidak ditempatkan pada satu drive khusus. Parity berotasi di seluruh drive, sehingga setiap drive membawa data dan parity.
RAID 6 menambahkan blok parity kedua yang independen pada setiap stripe, biasanya ditulis sebagai P dan Q. RAID 6 dapat bertahan jika dua drive gagal sekaligus. Hal ini lebih penting daripada yang terlihat, karena kegagalan kedua paling sering terjadi saat perbaikan kegagalan pertama berlangsung.
RAID 10 adalah stripe yang terdiri atas mirror. Drive dibuat mirror secara berpasangan, lalu data disebarkan ke seluruh pasangan. Kapasitas yang dapat digunakan adalah setengah total kapasitas mentah, sama seperti RAID 1, dengan paralelisme striping sebagai tambahan.
Anda juga akan melihatnya ditulis sebagai RAID 1+0. Ini adalah deskripsi yang tepat: buat mirror terlebih dahulu, lalu lakukan striping di seluruh mirror. RAID 0+1 menggunakan urutan sebaliknya: lakukan striping terlebih dahulu, lalu buat mirror dari kedua stripe. Susunan ini lebih buruk karena satu kegagalan drive membuat seluruh stripe tidak dapat digunakan, dan perbaikannya harus menyalin seluruh sisi lainnya.
Linux merupakan kasus khusus yang perlu diketahui. raid10 pada kernel adalah satu personality, bukan dua lapisan yang ditumpuk, sehingga dapat berjalan dengan jumlah drive ganjil dan memiliki layout (near, far, offset) yang tidak dapat dinyatakan oleh setup bertingkat. Karena itu, baris status pada sistem Linux menampilkan 2 near-copies, bukan menyebutkan dua array.
The data behind this chart
[
{
"label": "RAID 1 (four mirrored pairs)",
"usable_tb": 4,
"worst_case_drives_lost": 1,
"best_case_drives_lost": 4
},
{
"label": "RAID 5",
"usable_tb": 7,
"worst_case_drives_lost": 1,
"best_case_drives_lost": 1
},
{
"label": "RAID 6",
"usable_tb": 6,
"worst_case_drives_lost": 2,
"best_case_drives_lost": 2
},
{
"label": "RAID 10",
"usable_tb": 4,
"worst_case_drives_lost": 1,
"best_case_drives_lost": 4
}
]Delapan drive berkapasitas 1 TB memberikan 7 TB ruang yang dapat digunakan dengan RAID 5 dan 4 TB dengan RAID 10. Selisih tersebut berarti biaya nyata, dan itulah alasan parity terus diusulkan. RAID 6 dapat bertahan dari 2 kegagalan dalam pola apa pun. RAID 10 hanya menjamin 1, karena kegagalan kedua yang berbahaya adalah kegagalan pada pasangan drive yang sudah lebih dahulu gagal. RAID 10 dapat bertahan hingga 4 kegagalan jika tidak ada dua kegagalan yang terjadi pada pasangan yang sama. Namun, itu merupakan keberuntungan, bukan karakteristik desain.
Biaya setiap level pada setiap penulisan
Penulisan ke mirror berarti dua operasi penulisan yang dikirim secara bersamaan ke kedua anggotanya. Penulisan ke stripe parity membutuhkan lebih banyak pekerjaan karena blok parity untuk stripe tersebut menjadi tidak valid dan harus dihitung ulang.
Controller tidak dapat menghitung ulang parity hanya dari blok baru. Controller terlebih dahulu memerlukan blok data lama dan blok parity lama. Karena itu, satu penulisan acak kecil ke RAID 5 menjadi operasi baca, baca, tulis, tulis. RAID 6 harus mempertahankan syndrome kedua, sehingga penulisan yang sama menjadi operasi baca, baca, baca, tulis, tulis, tulis.
The data behind this chart
[
{
"label": "RAID 1 (2 drives)",
"write_ops_per_host_write": 2,
"drives_read_to_rebuild": 1
},
{
"label": "RAID 5 (8 drives)",
"write_ops_per_host_write": 4,
"drives_read_to_rebuild": 7
},
{
"label": "RAID 6 (8 drives)",
"write_ops_per_host_write": 6,
"drives_read_to_rebuild": 7
},
{
"label": "RAID 10 (8 drives)",
"write_ops_per_host_write": 2,
"drives_read_to_rebuild": 1
}
]Penulisan acak kecil membutuhkan 6 operasi perangkat pada RAID 6 dan 2 pada RAID 10. Jumlah tersebut meremehkan perbedaan latensi. Dua penulisan mirror dikirim secara paralel, sehingga guest menunggu operasi yang lebih lambat di antara keduanya. Jalur parity berisi operasi baca yang harus selesai sebelum parity baru dapat dihitung. Karena itu, guest menunggu operasi baca lalu operasi tulis secara berurutan. Pada host yang sibuk, operasi baca tersebut mengantre di belakang I/O milik pengguna lain.
Ada pengecualian penting. Penulisan yang cukup besar untuk mengisi seluruh stripe tidak memerlukan data lama karena setiap blok dalam stripe akan diganti. Parity dihitung dari data yang sudah berada di memori, dan biayanya turun menjadi satu operasi tulis tambahan. Inilah sebabnya RAID 5 terlihat baik dalam benchmark berurutan, tetapi berperilaku buruk saat menerima beban campuran yang terdiri atas penulisan kecil dari banyak tenant. Uji pola yang benar-benar Anda jalankan: benchmark disk VPS dengan benar berarti I/O acak pada kedalaman antrean yang realistis, bukan satu dd besar.
Mengapa rebuild menjadi bagian yang berbahaya
Rebuild parity harus merekonstruksi drive yang hilang dari seluruh drive lainnya. Karena itu, proses ini membaca 7 drive yang masih berfungsi, dari blok pertama hingga blok terakhir. Rebuild RAID 10 hanya membaca 1: partner mirror dari drive yang rusak, dan tidak ada drive lainnya.
Dua dampak muncul dari proses tersebut. Dampak pertama adalah waktu, karena rebuild dibatasi oleh drive yang masih berfungsi dan paling lambat, serta perhitungan parity yang harus dilakukan. Dampak kedua adalah beban. Setiap drive dalam parity set sibuk selama seluruh proses berlangsung, sehingga setiap guest pada node tersebut mengalami latensi yang lebih tinggi hingga proses selesai. Pada RAID 10, hanya satu pasangan yang sibuk, sedangkan pasangan lainnya melayani permintaan dengan kecepatan normal.
Ada risiko terhadap integritas data selama periode yang sama. Array RAID 5 dengan satu drive yang mati tidak lagi memiliki redundansi. Karena itu, sektor yang tidak dapat dibaca pada drive mana pun yang masih berfungsi tidak dapat dipulihkan. Rebuild adalah satu-satunya operasi yang membaca setiap sektor, termasuk sektor yang tidak pernah disentuh selama setahun. Angka pada datasheet yang dipublikasikan menunjukkan bahwa hard drive konsumen memiliki kemungkinan sekitar satu read error yang tidak dapat dipulihkan untuk setiap 10^14 bit yang dibaca, sedangkan drive NVMe enterprise memiliki kemungkinan satu untuk setiap 10^17 bit atau lebih baik. Angka tersebut merupakan spesifikasi vendor, bukan hasil pengukuran. Namun, perbandingan itu menjelaskan mengapa peringatan lama bahwa rebuild RAID 5 akan gagal ditulis berdasarkan pengalaman dengan hard disk berputar berkapasitas besar, dan mengapa peringatan tersebut jauh kurang berlaku pada NVMe. Argumen tentang beban tetap berlaku pada media apa pun.
Temukan error laten sebelum rebuild menemukannya dengan melakukan scrub. Debian dan Ubuntu menyediakan scrub berkala untuk array md, tetapi mekanismenya berbeda antar-rilis. Periksa mekanisme yang tersedia pada sistem Anda, lalu jalankan satu pass secara manual.
systemctl list-timers --all | grep -i mdcheck
ls -l /etc/cron.d/mdadm
echo check | sudo tee /sys/block/md0/md/sync_action
cat /sys/block/md0/md/mismatch_cntsync_action kembali ke idle setelah pass selesai, dan mismatch_cnt seharusnya membaca 0. Angka di atas nol pada mirror berarti kedua sisi tidak cocok dan kernel tidak dapat menentukan salinan mana yang benar, karena tidak ada salinan yang menyertakan checksum. Sebagian mismatch tidak berbahaya. Partisi swap adalah sumber yang paling umum, karena kernel dapat menulis halaman yang berubah saat proses berlangsung. Jumlah mismatch yang terus meningkat pada array data menunjukkan bahwa drive tersebut harus diganti.
Mengapa penyedia VPS memilih RAID 10 sebagai standar untuk NVMe
Satu node hypervisor tidak menjalankan satu workload. Node tersebut menjalankan puluhan guest yang tidak saling berkaitan, dan I/O-nya datang secara berselang-seling sebagai aliran write kecil tanpa locality di antara guest. Inilah pola yang membuat siklus parity read-modify-write paling mahal. Node bersama menghadapi pola ini sepanjang hari.
Perilaku rebuild semakin memperjelas pilihan tersebut. Drive yang gagal pada node berbasis parity memperlambat setiap guest di server selama berjam-jam. Drive yang gagal pada node RAID 10 hanya memperlambat satu pasangan, dan proses penyalinan berjalan secara berurutan pada kecepatan drive. Penyedia menjual latency yang tidak melonjak, sehingga mereka membayarnya dengan kapasitas: setengah kapasitas raw NVMe digunakan untuk mirror.
Ukuran drive mendorong pilihan yang sama. Semakin besar drive, semakin lama jendela rebuild, dan pada parity, selama jendela tersebut semuanya berjalan lambat dan tidak ada data yang terlindungi. Inilah alasan yang sama mengapa deployment ZFS untuk virtualisasi menggunakan pool berisi vdev mirror, bukan raidz lebar: resilver mirror hanya menyalin blok yang benar-benar digunakan, pada satu pasangan.
Semua ini tidak berarti RAID 10 selalu merupakan pilihan yang tepat. Target backup ditulis dalam rangkaian panjang secara berurutan dan jarang dibaca, sehingga RAID 6 lebih sesuai. RAID 6 dapat bertahan terhadap dua kegagalan dan mengembalikan sebagian besar kapasitas. Workload yang menentukan, bukan jumlah drive. Untuk paket yang dipilih saat ini, jenis media biasanya lebih penting daripada layout di atasnya, dan peralihan dari SATA SSD ke NVMe lebih besar dampaknya daripada perbedaan RAID apa pun pada keduanya.
Cara membaca /proc/mdstat
Jalankan perintah ini pada mesin yang array-nya Anda miliki: dedicated server, komputer di rumah, atau VPS dengan dua volume terpasang yang Anda rakit sendiri. Baca output milik Anda sendiri. Blok di bawah ini adalah contoh yang ditulis lengkap agar Anda dapat mencocokkan bentuk output yang diperoleh.
cat /proc/mdstat
sudo mdadm --detail /dev/md0
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTSRAID 10 dengan empat drive yang sehat akan menampilkan output yang kurang lebih seperti ini.
Personalities : [raid1] [raid10]
md0 : active raid10 nvme3n1p3[3] nvme2n1p3[2] nvme1n1p3[1] nvme0n1p3[0]
3906764800 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/30 pages [0KB], 65536KB chunk
unused devices: <none>Setiap bagian output tersebut berisi informasi.
Personalitiesmencantumkan modul md yang telah dimuat oleh kernel yang sedang berjalan. Kemunculanraid10di sana hanya berarti kodenya tersedia.md0 : active raid10adalah device array, statusnya, dan level-nya.- Nama setelah bagian tersebut adalah anggota array. Angka dalam tanda kurung siku adalah indeks device dalam metadata array, bukan posisinya pada baris dan tidak selalu menunjukkan slot-nya.
- Setelah penggantian drive, anggota baru biasanya mempertahankan indeks yang lebih tinggi daripada slot yang diisinya. Karena itu,
nvme4n1p3[4]dapat berada di slot 2.mdadm --detailmenampilkan slot sebenarnya pada kolomRaidDevice, jadi gunakan kolom tersebut jika perbedaannya penting. (F)setelah nama anggota berarti faulty.(S)berarti spare: tersedia, tidak aktif, dan menunggu hingga terjadi kegagalan.3906764800 blocks super 1.2adalah ukuran yang dapat digunakan dalam blok 1 KiB, kemudian format metadata.512K chunks 2 near-copiesadalah ukuran chunk stripe dan layout RAID 10. Pada contoh ini, layout tersebut menyimpan dua salinan setiap blok secara berdekatan.[4/4]adalah jumlah anggota yang diharapkan array, kemudian jumlah anggota yang saat ini tersinkronisasi.[UUUU]adalah satu karakter untuk setiap slot, dalam urutan slot.Uadalah slot yang aktif dan tersinkronisasi._adalah slot yang tidak memiliki device aktif.bitmap:adalah write-intent bitmap. Bitmap ini mencatat region yang sedang ditulis. Dengan demikian, anggota yang terputus lalu kembali dapat melakukan resync pada region tersebut, bukan pada seluruh drive.
Arti [4/3] dan [UU_U] saat terjadi masalah
Array yang mengalami degradasi akan terlihat seperti ini.
md0 : active raid10 nvme3n1p3[3] nvme2n1p3[2](F) nvme1n1p3[1] nvme0n1p3[0]
3906764800 blocks super 1.2 512K chunks 2 near-copies [4/3] [UU_U]Baca kedua tanda kurung tersebut secara bersamaan. [4/3] menunjukkan bahwa satu dari empat slot tidak berkontribusi. [UU_U] menunjukkan slot yang dimaksud. Garis bawah adalah karakter ketiga, sedangkan slot diberi nomor mulai dari nol, sehingga slot 2 sedang tidak aktif. Flag (F) hanya menampilkan nama device selama drive yang gagal masih terpasang. Jika drive tersebut dicabut dari mesin, namanya hilang dari baris, sedangkan garis bawah tetap ada.
Array tetap melayani permintaan selama kondisi ini, dan pada RAID 10 sering kali tetap berjalan mendekati kecepatan penuh. Karena itu, masalah ini sering tidak terasa. Anda memerlukan mekanisme untuk memberi tahu Anda.
grep -i mailaddr /etc/mdadm/mdadm.conf
sudo mdadm --monitor --scan --oneshot --test
systemctl list-units --all | grep -i mdPaket mdadm memasang daemon pemantauan yang membaca MAILADDR dari /etc/mdadm/mdadm.conf. Nama unit dapat berubah antar-rilis, jadi cari dengan perintah terakhir tersebut, bukan dengan menebak. Perintah --test mengirim satu pesan untuk setiap array secara langsung. Jika inbox tetap kosong setelah perintah tersebut dijalankan, jalur email bermasalah. Pesan yang sebenarnya perlu Anda terima kemungkinan juga akan hilang dengan cara yang sama.
Saat drive pengganti sedang dibangun ulang, baris progres akan muncul di bawah array.
md0 : active raid10 nvme4n1p3[4] nvme3n1p3[3] nvme1n1p3[1] nvme0n1p3[0]
3906764800 blocks super 1.2 512K chunks 2 near-copies [4/3] [UU_U]
[==>..................] recovery = 12.4% (242012928/1953382400) finish=63.1min speed=452000K/secrecovery adalah proses rebuild ke drive pengganti. resync adalah pemeriksaan konsistensi pertama pada array yang baru dibuat. check adalah scrub yang Anda picu sebelumnya. Nilai dalam tanda kurung menunjukkan progres dalam blok 1 KiB terhadap total per device, sedangkan finish adalah perkiraan kernel pada kecepatan saat ini. Kecepatan tersebut dibatasi oleh /proc/sys/dev/raid/speed_limit_min dan speed_limit_max. Batas ini ada agar proses rebuild tidak menghabiskan seluruh kapasitas I/O produksi.
mdadm --detail lengkap selama proses rebuild
/dev/md0:
Version : 1.2
Creation Time : Tue Mar 10 09:14:22 2026
Raid Level : raid10
Array Size : 3906764800 (3.64 TiB 4.00 TB)
Used Dev Size : 1953382400 (1.82 TiB 2.00 TB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Aug 5 11:02:41 2026
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : near=2
Chunk Size : 512K
Rebuild Status : 12% complete
Name : storage:0
Events : 4184
Number Major Minor RaidDevice State
0 259 3 0 active sync set-A /dev/nvme0n1p3
1 259 7 1 active sync set-B /dev/nvme1n1p3
4 259 11 2 spare rebuilding /dev/nvme4n1p3
3 259 15 3 active sync set-B /dev/nvme3n1p3Kolom Number adalah indeks metadata yang ditampilkan dalam tanda kurung pada /proc/mdstat. Kolom RaidDevice adalah slot, yaitu posisi dalam string [UU_U]. Keduanya berbeda di sini karena device 4 menggantikan drive yang sebelumnya menempati slot 2. set-A dan set-B menunjukkan dua bagian dari setiap mirror. Karena itu, Anda tidak boleh kehilangan anggota set-A dan anggota set-B dalam pasangan yang sama-sama menyimpan data yang sama.
Mengganti drive pada array yang Anda miliki memerlukan empat perintah. Perintah terakhir adalah pemeriksaannya.
sudo mdadm --manage /dev/md0 --fail /dev/nvme2n1p3
sudo mdadm --manage /dev/md0 --remove /dev/nvme2n1p3
sudo mdadm --manage /dev/md0 --add /dev/nvme4n1p3
cat /proc/mdstatBaris recovery seharusnya muncul dalam satu atau dua detik. Partisi pengganti harus berukuran setidaknya sama besar dengan Used Dev Size dari mdadm --detail. Partisi yang sedikit lebih kecil sekalipun akan ditolak dengan pesan seperti not large enough to join array. Buat partisi pada drive baru agar sesuai dengan drive lama sebelum menambahkannya.
Apa yang dapat dan tidak dapat Anda lihat dari dalam VPS
Sebagian besar guest tidak dapat melihat RAID milik host, dan hal itu memang dirancang demikian. Hypervisor memberikan satu disk virtual kepada Anda. Apakah disk tersebut berasal dari pool RAID 10 yang terdiri atas drive NVMe atau berada pada satu drive merupakan properti host, dan informasi itu tidak terlihat dari dalam guest.
systemd-detect-virt
lsblk -d -o NAME,SIZE,ROTA,MODEL
cat /proc/mdstatsystemd-detect-virt mencetak kvm pada guest KVM, jenis container seperti lxc pada container, dan none pada bare metal. Pada guest KVM, biasanya Anda hanya melihat satu vda atau sda di lsblk, serta tidak melihat array apa pun di /proc/mdstat, karena memang tidak ada array di dalam guest.
Pada VPS berbasis container, hasil tersebut tidak dapat dipercaya. Container berbagi kernel host, dan sebagian /proc tidak dibuat namespace, sehingga informasi yang Anda baca dapat menjelaskan host, bukan bagian yang dialokasikan untuk Anda. Jangan menganggap informasi tersebut sebagai fakta tentang storage Anda sendiri. Tanyakan layout-nya kepada provider, dan minta jawaban tertulis jika hal itu penting bagi Anda.
Yang dapat Anda periksa dari dalam adalah perilaku disk yang diberikan kepada Anda. Memeriksa apakah disk VPS Anda benar-benar NVMe membahas perintah yang melaporkan informasi nyata, sedangkan apa saja yang sebenarnya termasuk dalam VPS SSD membahas klaim pada label di halaman paket.
Haruskah Anda menjalankan RAID di dalam VPS?
Biasanya tidak. Alasannya adalah domain kegagalan.
Jika Anda memasang dua volume pada satu VPS lalu melakukan mirroring dengan mdadm, kedua volume tersebut mungkin berada pada array fisik yang sama, node yang sama, dan catu daya yang sama. Anda akan menggandakan biaya setiap operasi tulis untuk redundansi yang sebenarnya sudah disediakan, tetapi tetap kehilangan kedua salinan jika terjadi satu kegagalan yang relevan.
RAID layak digunakan jika penyedia mendokumentasikan bahwa volume berada dalam domain kegagalan yang terpisah, atau jika Anda menggunakan server khusus dengan drive yang dapat Anda kelola langsung. Jika tidak, upaya tersebut lebih baik diarahkan untuk membuat salinan yang disimpan di luar mesin.
Hal yang Tidak Dilindungi RAID
RAID menangani satu kejadian: drive yang berhenti bekerja dengan benar. Semua hal di bawah ini adalah penulisan yang valid, sehingga array menerapkannya ke setiap salinan dan melaporkan dirinya dalam kondisi sehat.
- Penghapusan.
rm -rfdi direktori yang salah, atau skrip deploy dengan variabel yang tidak ditetapkan pada suatu path. Array menganggapnya sebagai penulisan yang sah dan menjalankannya dua kali. - Ransomware. Enkripsi adalah proses penulisan. Array yang sehat menyimpan versi terenkripsi pada kedua sisi mirror.
- Aplikasi yang rusak. Bug yang menulis data sampah ke database Anda juga menulis data sampah yang sama ke drive redundan.
- Seluruh node. Host yang gagal, atau akun yang ditangguhkan karena kesalahan. Array dapat berfungsi sempurna tetapi tetap tidak dapat diakses.
- Diri Anda sendiri, seminggu kemudian. File yang Anda hapus pada hari Senin hilang dari semua drive pada hari Senin. Hanya salinan yang dibuat sebelum itu yang dapat mengembalikannya.
Snapshot pada storage yang sama juga bukan solusinya. Snapshot membantu mengatasi penghapusan, tetapi ikut hilang bersama array tempat snapshot tersebut berada. Hal yang menjadikan sebuah backup benar-benar backup adalah lokasinya yang berbeda. Backup terenkripsi di luar server dengan restic adalah bagian lain dari halaman ini: array membuat layanan tetap berjalan saat drive mati, sedangkan restic mengembalikan data Anda ketika kerusakannya berupa penulisan yang dianggap valid oleh array.
FAQ
Apakah RAID 10 berarti saya tidak memerlukan backup?
Tidak. RAID 10 melindungi dari drive yang berhenti bekerja. Setiap operasi tulis yang valid diterapkan ke kedua sisi mirror, sehingga penghapusan atau eksekusi ransomware mencapai drive redundan pada saat yang sama. Array tetap melaporkan dirinya dalam kondisi bersih setelahnya karena dari sudut pandangnya tidak ada yang gagal. Anda tetap memerlukan salinan yang berada di luar mesin, dan tetap perlu memulihkan salah satunya sesekali untuk memastikan salinan tersebut dapat digunakan.
Mengapa penyedia VPS memilih RAID 10 daripada RAID 5 atau RAID 6?
Ada dua alasan, dan keduanya berkaitan dengan operasi tulis acak berukuran kecil. Operasi tulis parity memerlukan pembacaan data lama dan parity lama sebelum parity baru dapat dihitung. Karena itu, operasi tulis kecil memerlukan 4 operasi pada RAID 5 dan 6 pada RAID 6, dibandingkan dengan 2 pada mirror. Rebuild parity kemudian membaca setiap drive yang masih bertahan dari awal hingga akhir. Proses ini memperlambat setiap guest pada node selama berjam-jam. Sebaliknya, rebuild RAID 10 menyalin data dari satu drive ke satu drive dan tidak memengaruhi pasangan lainnya. Penyedia membayar keuntungan tersebut dengan kapasitas: setengah dari kapasitas mentah NVMe.
Apa arti [U_] atau [UU_U] di /proc/mdstat?
Setiap karakter mewakili satu slot dalam array, sesuai urutan slot, dengan satu karakter untuk setiap slot. U berarti slot tersebut berisi member yang aktif dan tersinkronisasi. _ berarti tidak ada komponen yang berfungsi pada slot tersebut. [U_] pada mirror dua drive berarti slot kedua sedang down dan tidak ada redundansi yang tersisa. Baca informasi tersebut bersama pasangan karakter di depannya. [4/3] menyatakan bahwa array mengharapkan empat member dan baru memiliki tiga. Urutan slot sesuai dengan kolom RaidDevice pada mdadm --detail, bukan urutan kemunculan nama device pada baris tersebut.
Berapa banyak drive yang dapat hilang dari array RAID 10?
Satu drive, dalam pola apa pun. Setelah itu, hasilnya bergantung pada lokasi kegagalan. Setiap pasangan mirror dapat kehilangan satu dari dua member-nya. Jadi, array delapan drive dapat bertahan dari hingga empat kegagalan jika tidak ada dua kegagalan yang terjadi pada pasangan yang sama. Array tersebut gagal pada dua kegagalan jika keduanya terjadi pada pasangan yang sama. Rencanakan berdasarkan jumlah yang dijamin, yaitu satu drive. Anggap jumlah yang lebih besar sebagai keberuntungan, bukan perlindungan.
Haruskah saya melakukan mirror pada dua volume di dalam VPS dengan mdadm?
Biasanya tidak. Dua volume yang terpasang pada satu VPS sering berada pada array fisik yang sama di host yang sama. Karena itu, proses mirror menggandakan biaya setiap operasi tulis dan tidak melindungi dari apa pun yang belum dilindungi oleh RAID milik host. Langkah ini layak dilakukan hanya jika penyedia mendokumentasikan bahwa volume tersebut berada di failure domain yang terpisah. Jika tidak, gunakan upaya tersebut untuk membuat backup yang keluar dari mesin.