Apakah itu RAID 10 dan mengapa ia penting untuk VPS?
Ketahui perbezaan RAID 1, 5, 6, dan 10 serta risiko kehilangan data. Kami terangkan cara membaca /proc/mdstat dan sebab utama RAID bukan pengganti kepada sandaran data.
Apakah itu RAID 10, dan mengapa hos VPS menggunakannya
RAID 10 ialah susun atur storan yang digunakan oleh kebanyakan hos VPS di bawah pemacu NVMe (non-volatile memory express) tervirtualisasi. Ia menyalin setiap pemacu ke pasangan masing-masing, kemudian menstripkan data merentasi pasangan yang disalin tersebut. Satu pemacu boleh rosak tanpa menghentikan tatasusunan, dan pembaikan dilakukan melalui penyalinan terus daripada pasangan yang masih berfungsi, bukannya pengiraan semula yang membaca setiap pemacu lain dalam set tersebut.
RAID bermaksud redundant array of independent disks. Ia mempunyai satu tugas: memastikan mesin terus beroperasi semasa cakera rosak atau sedang diganti. Tugas itu adalah ketersediaan, dan ketersediaan bukanlah keselamatan.
RAID mereplikasi penulisan anda. rm -rf /srv ialah satu penulisan. Kedua-dua bahagian cermin akan memadam direktori pada milisaat yang sama, dan tatasusunan tersebut masih melaporkan dirinya dalam keadaan bersih selepas itu.
Simpan ayat tersebut. Bahagian lain halaman ini merangkumi tahap kerosakan yang boleh ditangani oleh setiap aras dan kos yang dikenakan pada setiap penulisan. Bahagian terakhir mengandungi arahan untuk membaca status tatasusunan pada mesin milik anda, serta kegagalan yang tidak pernah dilindungi oleh RAID.
Tahap yang sebenarnya ditemui oleh pembeli perkhidmatan pengehosan: 1, 5, 6 dan 10
Halaman pelan hanya menamakan satu nombor dan berhenti di situ. Nombor tersebut menjawab dua soalan: berapa banyak pemacu boleh rosak, dan berapakah kos bagi setiap penulisan.
RAID 1 ialah cermin. Dua pemacu menyimpan blok yang serupa. Setiap penulisan dihantar ke kedua-duanya. Mana-mana pemacu boleh melayani bacaan. Satu pemacu boleh gagal tanpa kehilangan data, dan separuh daripada kapasiti mentah boleh digunakan. Tiada pariti untuk dikira, jadi laluan penulisan adalah singkat.
RAID 5 ialah jalur (striping) dengan satu blok pariti bagi setiap jalur. Dengan n pemacu, anda mendapat kapasiti n-1 daripadanya, dan tatasusunan tersebut bertahan dengan tepat satu kegagalan. Pariti tidak terletak pada satu pemacu khusus. Ia berputar merentasi kesemuanya, jadi setiap pemacu membawa kedua-dua data dan pariti.
RAID 6 menambah blok pariti kedua yang bebas pada setiap jalur, biasanya ditulis sebagai P dan Q. Ia bertahan daripada mana-mana dua pemacu yang gagal serentak. Ini lebih penting daripada kedengarannya, kerana kegagalan kedua paling kerap berlaku semasa pembaikan kegagalan pertama.
RAID 10 ialah jalur bagi cermin. Pemacu dicerminkan secara berpasangan, dan data disebarkan merentasi pasangan tersebut. Kapasiti yang boleh digunakan adalah separuh daripada jumlah mentah, sama seperti RAID 1, dengan tambahan kesejajaran (parallelism) daripada jalur.
Anda juga akan melihatnya ditulis sebagai RAID 1+0, yang merupakan deskripsi jujur: cermin dahulu, kemudian jalur merentasi cermin tersebut. RAID 0+1 ialah susunan yang satu lagi, jalur dahulu kemudian cermin bagi kedua-dua jalur. Ia lebih buruk, kerana satu kegagalan pemacu menyebabkan keseluruhan jalur tidak dapat beroperasi dan pembaikan perlu menyalin keseluruhan bahagian yang satu lagi.
Linux ialah kes khas yang perlu diketahui. raid10 kernel adalah personaliti tunggal dan bukannya dua lapisan bertingkat, jadi ia berjalan pada bilangan pemacu ganjil dan mempunyai susun atur (near, far, offset) yang tidak dapat dinyatakan oleh persediaan bersarang. Itulah sebabnya baris status pada mesin Linux menyatakan 2 near-copies dan bukannya menamakan dua tatasusunan.
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
}
]Lapan pemacu 1 TB memberikan 7 TB ruang yang boleh digunakan di bawah RAID 5 dan 4 TB di bawah RAID 10. Jurang itu adalah wang sebenar, dan itulah sebabnya pariti terus dicadangkan. RAID 6 bertahan daripada 2 kegagalan dalam apa jua corak sekalipun. RAID 10 hanya menjamin 1, kerana kegagalan kedua yang berbahaya ialah kegagalan yang menimpa pasangan kepada pemacu yang telah pun rosak. Ia bertahan sehingga 4 apabila tiada dua kegagalan berkongsi pasangan yang sama, yang merupakan nasib baik dan bukannya sifat reka bentuk.
Kos setiap peringkat bagi setiap penulisan
Penulisan ke dalam mirror melibatkan dua operasi penulisan yang dikeluarkan serentak kepada kedua-dua ahli. Penulisan ke dalam jalur pariti memerlukan lebih banyak kerja, kerana blok pariti bagi jalur tersebut kini tidak tepat dan perlu dikira semula.
Pengawal tidak boleh mengira semula pariti hanya daripada blok baharu. Ia memerlukan blok data lama dan blok pariti lama terlebih dahulu. Oleh itu, satu penulisan rawak kecil ke RAID 5 menjadi baca, baca, tulis, tulis. RAID 6 mempunyai sindrom kedua untuk diselenggara, jadi penulisan yang sama menjadi 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
}
]Satu penulisan rawak kecil menelan kos 6 operasi peranti pada RAID 6 dan 2 pada RAID 10. Kiraan ini tidak menggambarkan perbezaan latensi yang sebenar. Dua penulisan mirror dilakukan secara selari, jadi tetamu menunggu peranti yang lebih perlahan antara kedua-duanya. Laluan pariti mengandungi operasi baca yang mesti selesai sebelum pariti baharu boleh dikira, jadi tetamu menunggu operasi baca dan kemudian operasi tulis, satu demi satu. Pada hos yang sibuk, operasi baca tersebut beratur di belakang I/O pihak lain.
Terdapat satu pengecualian penting. Penulisan yang cukup besar untuk mengisi keseluruhan jalur tidak memerlukan data lama, kerana setiap blok dalam jalur tersebut digantikan. Pariti dikira daripada apa yang sudah ada dalam memori, dan kosnya berkurangan kepada satu penulisan tambahan. Inilah sebabnya RAID 5 kelihatan baik dalam penanda aras berjujukan tetapi berkelakuan buruk di bawah beban campuran penulisan kecil daripada ramai penyewa. Uji corak yang anda jalankan sebenarnya: menanda aras cakera VPS dengan betul bermaksud I/O rawak pada kedalaman baris gilir yang realistik, bukan satu dd yang besar.
Mengapa proses bina semula (rebuild) adalah bahagian yang berbahaya
Proses bina semula pariti perlu membina semula pemacu yang hilang daripada semua pemacu lain, jadi ia membaca 7 pemacu yang masih berfungsi dari blok pertama hingga terakhir. Proses bina semula RAID 10 pula membaca 1: pasangan cermin bagi pemacu yang rosak, dan tiada yang lain.
Dua kos timbul daripada perkara tersebut. Pertama ialah masa, kerana proses bina semula dihadkan oleh pemacu yang paling perlahan dan oleh pengiraan pariti di atasnya. Kedua ialah beban. Setiap pemacu dalam set pariti sibuk sepanjang tempoh tersebut, jadi setiap tetamu pada nod itu akan mengalami kependaman (latency) yang lebih tinggi sehingga proses selesai. Pada RAID 10, hanya satu pasangan yang sibuk manakala pasangan lain beroperasi pada kelajuan biasa.
Terdapat risiko ketepatan dalam tempoh yang sama. Tatasusunan RAID 5 dengan satu pemacu yang rosak tidak mempunyai lebihan (redundancy), jadi sektor yang tidak boleh dibaca di mana-mana pemacu yang masih berfungsi kini tidak dapat dipulihkan. Proses bina semula adalah satu-satunya operasi yang membaca setiap sektor, termasuk sektor yang tidak disentuh oleh sesiapa pun selama setahun. Angka helaian data yang diterbitkan meletakkan pemacu keras pengguna berhampiran satu ralat bacaan yang tidak boleh dipulihkan bagi setiap 10^14 bit yang dibaca, dan pemacu NVMe perusahaan pada satu bagi setiap 10^17 atau lebih baik. Itu adalah spesifikasi pengeluar dan bukannya ukuran, tetapi nisbah tersebut menjelaskan mengapa amaran lama bahawa bina semula RAID 5 akan gagal ditulis mengenai cakera berputar yang besar, dan mengapa ia jauh lebih lemah pada NVMe. Hujah beban tetap terpakai pada mana-mana medium.
Cari ralat pendam sebelum proses bina semula melakukannya, dengan melakukan scrubbing. Debian dan Ubuntu menyediakan scrub berkala untuk tatasusunan md, dan mekanismenya berbeza antara keluaran, jadi semak yang mana satu anda miliki dan kemudian cetuskan satu laluan 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 kepada idle apabila laluan selesai, dan mismatch_cnt sepatutnya membaca 0. Nombor melebihi sifar pada cermin bermakna kedua-dua bahagian tidak bersetuju dan kernel tidak dapat menyatakan yang mana satu betul, kerana tiada salinan yang membawa checksum. Sesetengah ketidakpadanan adalah tidak berbahaya, dan partition swap adalah punca biasa: kernel mungkin menulis halaman yang berubah di bawahnya. Kiraan yang meningkat pada tatasusunan data adalah petanda pemacu perlu diganti.
Mengapa penyedia VPS menyeragamkan RAID 10 untuk NVMe
Satu nod hypervisor tidak menjalankan satu beban kerja sahaja. Ia menjalankan berpuluh-puluh tetamu yang tidak berkaitan, dan I/O mereka tiba secara berselang-seli sebagai aliran penulisan kecil tanpa lokaliti antara satu sama lain. Itulah corak tepat di mana kitaran baca-ubah-tulis pariti memakan kos paling tinggi, dan ia merupakan corak yang dialami oleh nod kongsi sepanjang masa.
Tambahkan gelagat bina semula (rebuild) dan pilihan tersebut menjadi jelas. Pemacu yang gagal pada nod pariti melambatkan setiap tetamu pada kotak tersebut selama berjam-jam. Pemacu yang gagal pada nod RAID 10 hanya melambatkan satu pasangan, dan salinan berjalan secara berjujukan pada kelajuan pemacu. Penyedia menjual kependaman (latency) yang tidak melonjak, jadi mereka membelinya dengan kapasiti: separuh daripada NVMe mentah digunakan untuk cermin (mirror).
Saiz pemacu mendorong ke arah yang sama. Apabila pemacu menjadi lebih besar, tetingkap bina semula menjadi lebih lama, dan pada pariti, tetingkap itu adalah masa di mana segala-galanya menjadi perlahan dan tiada apa-apa yang dilindungi. Ini adalah sebab yang sama mengapa penggunaan ZFS untuk virtualisasi menggunakan pool vdev bercermin dan bukannya raidz yang lebar: resilver cermin hanya menyalin blok yang benar-benar digunakan, pada satu pasangan sahaja.
Tiada satu pun daripada ini menjadikan RAID 10 betul di mana-mana. Sasaran sandaran ditulis dalam larian berjujukan yang panjang dan jarang dibaca, jadi RAID 6 adalah tawaran yang lebih baik di sana. Ia bertahan daripada dua kegagalan dan memberikan semula kebanyakan kapasiti. Beban kerja yang menentukan, bukan nombor. Untuk pelan yang anda pilih hari ini, medium biasanya lebih penting daripada susun atur di atasnya, dan lonjakan daripada SATA SSD kepada NVMe adalah lebih besar daripada sebarang perbezaan RAID pada kedua-duanya.
Cara membaca /proc/mdstat
Jalankan arahan ini pada mesin yang mempunyai tatasusunan (array) anda sendiri: pelayan khusus, kotak di rumah, atau VPS dengan dua volum yang dipasang sendiri. Baca output anda sendiri. Blok di bawah adalah contoh, ditulis supaya anda boleh memadankan bentuk output yang anda perolehi.
cat /proc/mdstat
sudo mdadm --detail /dev/md0
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTSRAID 10 empat pemacu yang sihat akan memaparkan sesuatu yang hampir dengan 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 bahagian itu membawa maklumat.
Personalitiesmenyenaraikan modul md yang telah dimuatkan oleh kernel yang sedang berjalan.raid10yang muncul di situ bermakna kod tersebut tersedia, dan tiada apa-apa lagi.md0 : active raid10ialah peranti tatasusunan, statusnya, dan tahapnya.- Nama selepas itu ialah ahli-ahlinya. Nombor dalam kurungan segi empat sama ialah indeks peranti dalam metadata tatasusunan, bukan kedudukannya pada baris tersebut dan tidak semestinya slotnya.
- Selepas penggantian pemacu, ahli baharu biasanya mengekalkan indeks yang lebih tinggi daripada slot yang diisinya, jadi
nvme4n1p3[4]boleh berada dalam slot 2.mdadm --detailmencetak slot sebenar dalam lajurRaidDevice, jadi gunakan itu apabila perbezaan tersebut penting. (F)selepas ahli bermakna rosak.(S)bermakna ganti (spare): ada, melahu, menunggu sesuatu untuk gagal.3906764800 blocks super 1.2ialah saiz yang boleh digunakan dalam blok 1 KiB, kemudian format metadata.512K chunks 2 near-copiesialah saiz chunk jalur dan susun atur RAID 10, yang di sini menyimpan dua salinan setiap blok bersebelahan antara satu sama lain.[4/4]ialah bilangan ahli yang dijangkakan oleh tatasusunan, kemudian bilangan yang sedang diselaraskan (sync).[UUUU]ialah satu aksara bagi setiap slot, mengikut susunan slot.Uialah slot yang berfungsi dan selaras._ialah slot yang tiada apa-apa berfungsi di dalamnya.bitmap:ialah bitmap tujuan tulis (write intent bitmap). Ia merekodkan kawasan yang sedang ditulis, supaya ahli yang terputus dan kembali semula akan menyelaraskan semula kawasan tersebut dan bukannya keseluruhan pemacu.
Maksud [4/3] dan [UU_U] apabila sesuatu tidak kena
Tatasusunan yang terdegradasi kelihatan 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-dua kurungan bersama-sama. [4/3] menyatakan satu daripada empat slot tidak menyumbang. [UU_U] menyatakan yang mana satu, kerana garis bawah (underscore) adalah aksara ketiga dan slot dinomborkan bermula dari sifar, jadi slot 2 tidak berfungsi. Bendera (F) menamakan peranti hanya semasa pemacu yang gagal masih disambungkan. Tarik ia keluar dari mesin dan nama itu hilang dari baris, manakala garis bawah kekal.
Tatasusunan terus beroperasi sepanjang tempoh ini, dan pada RAID 10 ia sering beroperasi pada kelajuan hampir penuh, itulah sebabnya tiada siapa yang perasan melalui prestasi. Sesuatu perlu memberitahu anda.
grep -i mailaddr /etc/mdadm/mdadm.conf
sudo mdadm --monitor --scan --oneshot --test
systemctl list-units --all | grep -i mdPakej mdadm memasang daemon pemantau yang membaca MAILADDR daripada /etc/mdadm/mdadm.conf, dan nama unit telah berubah antara keluaran, jadi cari ia dengan arahan terakhir dan bukannya meneka. Jalankan --test untuk menghantar satu mesej bagi setiap tatasusunan dengan serta-merta. Peti masuk yang kosong selepas itu bermakna laluan mel rosak, jadi mesej yang sebenarnya anda perlukan akan hilang dengan cara yang sama.
Apabila penggantian sedang dibina semula, baris kemajuan muncul di bawah tatasusunan.
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 ialah pembinaan semula ke atas pemacu gantian. resync ialah pas konsistensi pertama ke atas tatasusunan yang baru dibuat. check ialah scrub yang anda cetuskan di atas. Pasangan dalam kurungan ialah kemajuan dalam blok 1 KiB berbanding jumlah setiap peranti, dan finish ialah anggaran kernel pada kelajuan semasa. Kelajuan itu dihadkan oleh /proc/sys/dev/raid/speed_limit_min dan speed_limit_max, dan had ini wujud supaya pembinaan semula tidak melumpuhkan I/O pengeluaran.
mdadm --detail penuh semasa pembinaan semula
/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/nvme3n1p3Lajur Number ialah indeks metadata yang dicetak dalam kurungan dalam /proc/mdstat. Lajur RaidDevice ialah slot, iaitu kedudukan dalam rentetan [UU_U]. Ia berbeza di sini kerana peranti 4 menggantikan pemacu yang memegang slot 2. set-A dan set-B menamakan dua bahagian setiap cermin, jadi ahli set-A dan ahli set-B dalam pasangan yang sama yang memegang data yang sama adalah perkara yang tidak boleh anda hilangkan secara serentak.
Menggantikan pemacu pada tatasusunan yang anda miliki memerlukan empat arahan, dan yang terakhir ialah pemeriksaan.
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 pemulihan sepatutnya muncul dalam masa satu atau dua saat. Partisi gantian mestilah sekurang-kurangnya sebesar Used Dev Size daripada mdadm --detail, dan partisi yang lebih kecil sedikit akan ditolak dengan mesej dalam bentuk not large enough to join array. Partisikan pemacu baharu untuk memadankan yang lama sebelum anda menambahnya.
Perkara yang boleh dan tidak boleh dilihat dari dalam VPS
Kebanyakan tetamu tidak dapat melihat RAID hos, dan ini adalah reka bentuknya. Hipervisor memberikan anda satu cakera maya. Sama ada cakera tersebut dibahagikan daripada kumpulan RAID 10 pemacu NVMe atau terletak pada satu pemacu adalah sifat hos, dan ia tidak dipaparkan di dalam tetamu anda.
systemd-detect-virt
lsblk -d -o NAME,SIZE,ROTA,MODEL
cat /proc/mdstatsystemd-detect-virt mencetak kvm pada tetamu KVM, jenis kontena seperti lxc pada kontena, dan none pada bare metal. Pada tetamu KVM, anda biasanya melihat satu vda atau sda dalam lsblk, dan tiada tatasusunan dalam /proc/mdstat, kerana tiada tatasusunan di dalam tetamu.
Pada VPS berasaskan kontena, bacaan tersebut tidak boleh dipercayai. Kontena berkongsi kernel hos dan bahagian /proc tidak diletakkan dalam ruang nama (namespaced), jadi apa yang anda baca di sana mungkin menggambarkan hos dan bukannya bahagian anda. Jangan anggap mana-mana maklumat tersebut sebagai fakta tentang storan anda sendiri. Tanya penyedia tentang susun atur tersebut, dan dapatkan jawapan secara bertulis jika ia penting bagi anda.
Perkara yang boleh anda semak dari dalam ialah kelakuan cakera yang diberikan kepada anda. Menyemak sama ada cakera VPS anda benar-benar NVMe merangkumi arahan yang melaporkan sesuatu yang nyata, dan apa yang sebenarnya disertakan dalam VPS SSD merangkumi perkara yang didakwa oleh label pada halaman pelan.
Adakah anda perlu menjalankan RAID di dalam VPS anda?
Biasanya tidak, dan sebabnya ialah domain kegagalan (failure domains). Jika anda melampirkan dua volum pada satu VPS dan melakukan mirroring menggunakan mdadm, kedua-dua volum tersebut mungkin berada pada tatasusunan fizikal yang sama, pada nod yang sama, di belakang bekalan kuasa yang sama. Anda akan menggandakan kos bagi setiap penulisan untuk redundansi yang sebenarnya sudah sedia ada, dan anda tetap akan kehilangan kedua-dua salinan tersebut sekiranya berlaku kegagalan tunggal yang kritikal.
Tindakan ini berbaloi dilakukan apabila penyedia perkhidmatan mendokumentasikan bahawa volum tersebut berada dalam domain kegagalan yang berasingan, atau apabila anda menggunakan pelayan dedikasi dengan pemacu yang boleh anda tentukan sendiri. Jika tidak, usaha anda lebih berbaloi jika ditumpukan kepada salinan yang disimpan di luar mesin tersebut.
Perkara yang tidak dilindungi oleh RAID
RAID hanya melindungi satu kejadian: pemacu yang berhenti berfungsi dengan betul. Segala perkara di bawah dianggap sebagai penulisan yang sah, jadi tatasusunan (array) akan melaksanakannya pada setiap salinan dan melaporkan dirinya dalam keadaan sihat.
- Pemadaman.
rm -rfdalam direktori yang salah, atau skrip atur cara (deploy script) dengan pemboleh ubah yang tidak ditetapkan dalam laluan. Tatasusunan melihat penulisan yang sah dan melakukannya dua kali. - Ransomware. Penyulitan ialah proses penulisan. Tatasusunan yang sihat akan menyimpan versi yang telah disulitkan pada kedua-dua bahagian cermin (mirror).
- Aplikasi yang rosak. Pepijat yang menulis data sampah ke dalam pangkalan data anda akan menulis sampah yang sama ke pemacu redundan.
- Keseluruhan nod. Hos yang gagal, atau akaun yang digantung secara tidak sengaja. Tatasusunan boleh berada dalam keadaan sempurna tetapi tidak boleh dicapai pada masa yang sama.
- Diri anda sendiri, seminggu kemudian. Fail yang anda padam pada hari Isnin hilang daripada setiap pemacu pada hari Isnin itu juga. Hanya salinan yang dibuat sebelum waktu tersebut dapat mengembalikannya.
Snapshot pada storan yang sama juga bukan penyelesaiannya. Ia membantu terhadap pemadaman, tetapi ia akan musnah bersama tatasusunan tempat ia disimpan. Sifat yang menjadikan sandaran (backup) sebagai sandaran sebenar ialah ia berada di tempat lain. Sandaran luar pelayan yang disulitkan dengan restic adalah bahagian kedua halaman ini: tatasusunan memastikan anda terus beroperasi walaupun pemacu rosak, dan restic mendapatkan semula data anda apabila kerosakan tersebut berpunca daripada penulisan yang dianggap sah oleh tatasusunan.
FAQ
Adakah RAID 10 bermakna saya tidak perlukan sandaran (backup)?
Tidak. RAID 10 melindungi daripada kegagalan pemacu cakera. Ia melaksanakan setiap penulisan yang sah pada kedua-dua bahagian cermin, jadi tindakan pemadaman atau serangan ransomware akan sampai ke pemacu redundan pada saat yang sama. Tatasusunan (array) akan melaporkan dirinya dalam keadaan baik selepas itu, kerana dari sudut pandangannya, tiada kegagalan berlaku. Anda masih memerlukan salinan yang disimpan di luar mesin, dan anda perlu melakukan pemulihan secara berkala untuk memastikan salinan tersebut berfungsi.
Mengapa penyedia VPS memilih RAID 10 berbanding RAID 5 atau RAID 6?
Dua sebab, kedua-duanya berkaitan dengan penulisan rawak bersaiz kecil. Penulisan pariti memerlukan data lama dan pariti lama dibaca semula sebelum pariti baharu dapat dikira, jadi penulisan kecil menelan kos 4 operasi pada RAID 5 dan 6 pada RAID 6, berbanding 2 pada cermin (mirror). Pembinaan semula pariti kemudiannya membaca setiap pemacu yang masih berfungsi dari awal hingga akhir, yang melambatkan setiap tetamu (guest) pada nod tersebut selama berjam-jam, manakala pembinaan semula RAID 10 menyalin satu pemacu ke satu pemacu lain dan membiarkan pasangan lain tidak terganggu. Penyedia membayar kos tersebut dengan kapasiti: separuh daripada NVMe mentah.
Apakah maksud [U_] atau [UU_U] dalam /proc/mdstat?
Setiap aksara mewakili satu slot dalam tatasusunan, mengikut urutan slot, dengan satu aksara bagi setiap slot. U bermakna slot tersebut memegang ahli yang aktif dan selari (in sync). _ bermakna slot tersebut tidak mempunyai komponen yang berfungsi. [U_] pada cermin dua pemacu bermakna slot kedua telah gagal dan tiada lagi redundansi. Baca ia bersama pasangan di hadapannya, di mana [4/3] menyatakan tatasusunan menjangkakan empat ahli tetapi hanya mempunyai tiga. Urutan slot sepadan dengan lajur RaidDevice dalam mdadm --detail, bukan urutan nama peranti yang muncul pada baris tersebut.
Berapa banyak pemacu yang boleh hilang dalam tatasusunan RAID 10?
Satu, dalam apa jua corak. Melebihi itu, ia bergantung kepada di mana kegagalan berlaku. Setiap pasangan cermin boleh kehilangan salah satu daripada dua ahlinya, jadi tatasusunan lapan pemacu boleh bertahan sehingga empat kegagalan jika tiada dua kegagalan yang berkongsi pasangan yang sama, dan ia akan gagal pada dua kegagalan jika kedua-duanya terkena pada pasangan yang sama. Rancang berdasarkan bilangan yang dijamin, iaitu satu, dan anggap sebarang kegagalan melebihi itu sebagai nasib baik dan bukannya perlindungan.
Patutkah saya melakukan mirroring dua volum di dalam VPS saya dengan mdadm?
Biasanya tidak. Dua volum yang dilampirkan pada satu VPS sering kali berada pada tatasusunan fizikal yang sama pada hos yang sama, jadi melakukan mirroring pada volum tersebut menggandakan kos setiap penulisan dan tidak melindungi daripada apa-apa yang tidak dilindungi oleh RAID hos itu sendiri. Ia hanya berbaloi dilakukan apabila penyedia mendokumentasikan bahawa volum tersebut berada dalam domain kegagalan yang berasingan. Jika tidak, tumpukan usaha tersebut kepada sandaran yang disimpan di luar mesin.