jelaskan md's raid10, f2

14

Saya tahu cara kerja berbagai RAID. Tapi saya menemukan mode raid10, f2 yang direkomendasikan saat mencari raid software linux. Saya tidak begitu mengerti cara kerjanya pada 2 atau 3 disk. dapatkah seseorang menjelaskannya kepada saya? atau tunjukkan saya pada artikel yang sangat bagus yang menjelaskannya?

xenoterracide
sumber

Jawaban:

17

sebenarnya saya pikir Wikipedia menjelaskannya lebih baik daripada dokumen yang sebenarnya. Ini teks dari artikel tersebut.

Driver RAID perangkat lunak kernel Linux (disebut md, untuk "beberapa perangkat") dapat digunakan untuk membangun array RAID 1 + 0 klasik, tetapi juga (sejak versi 2.6.9) sebagai level tunggal [4] dengan beberapa ekstensi menarik [ 5]. Tata letak "dekat" standar, di mana setiap potongan diulangi n kali dalam array garis k-way, setara dengan pengaturan RAID-10 standar, tetapi tidak mengharuskan n membagi k. Misalnya tata letak n2 pada drive 2, 3 dan 4 akan terlihat seperti:

2 drives         3 drives            4 drives
--------         ----------        --------------
A1  A1           A1  A1  A2        A1  A1  A2  A2
A2  A2           A2  A3  A3        A3  A3  A4  A4
A3  A3           A4  A4  A5        A5  A5  A6  A6
A4  A4           A5  A6  A6        A7  A7  A8  A8
..  ..           ..  ..  ..        ..  ..  ..  ..

Contoh 4-drive identik dengan array RAID-1 + 0 standar, sedangkan contoh 3-drive adalah implementasi perangkat lunak RAID-1E. Contoh 2-drive adalah RAID setara 1. Driver juga mendukung tata letak "jauh" di mana semua drive dibagi menjadi f bagian. Semua potongan diulang di setiap bagian tetapi diimbangi oleh satu perangkat. Misalnya, tata letak f2 pada array 2 dan 3 drive akan terlihat seperti:

2 drives             3 drives
--------             --------------
A1  A2               A1   A2   A3
A3  A4               A4   A5   A6
A5  A6               A7   A8   A9
..  ..               ..   ..   ..
A2  A1               A3   A1   A2
A4  A3               A6   A4   A5
A6  A5               A9   A7   A8
..  ..               ..   ..   ..

Ini dirancang untuk kinerja striping array mirrored; pembacaan berurutan dapat dilucuti, seperti pada RAID-0, pembacaan acak agak lebih cepat (mungkin 10-20% karena menggunakan sektor luar yang lebih cepat dari disk, dan waktu pencarian rata-rata yang lebih kecil), dan penulisan berurutan dan acak adalah tentang kinerja yang sama untuk serangan cermin lainnya. Tata letak berkinerja baik untuk sistem di mana bacaan lebih sering menulis, yang merupakan situasi yang sangat umum pada banyak sistem. 1 / f pertama dari setiap drive adalah array RAID-0 standar. Dengan demikian Anda bisa mendapatkan kinerja striping pada set mirror hanya 2 drive. Opsi dekat dan jauh dapat digunakan sekaligus. Potongan di setiap bagian diimbangi dengan n perangkat. Misalnya tata letak n2 f2 menyimpan 2 × 2 = 4 salinan dari masing-masing sektor, sehingga membutuhkan setidaknya 4 drive:

A1  A1  A2  A2        A1  A1  A2  A2  A3
A3  A3  A4  A4        A3  A4  A4  A5  A5
A5  A5  A6  A6        A6  A6  A7  A7  A8
A7  A7  A8  A8        A8  A9  A9  A10 A10
..  ..  ..  ..        ..  ..  ..  ..  ..
A2  A2  A1  A1        A2  A3  A1  A1  A2
A4  A4  A3  A3        A5  A5  A3  A4  A4
A6  A6  A5  A5        A7  A8  A6  A6  A7
A8  A8  A7  A7        A10 A10 A8  A9  A9
..  ..  ..  ..        ..  ..  ..  ..  ..

Pada Linux 2.6.18 driver juga mendukung tata letak ofset di mana setiap strip diulangi berkali-kali. Misalnya, tata letak o2 pada array 2 dan 3 drive diletakkan sebagai:

2 drives       3 drives
--------       --------
A1  A2         A1  A2  A3
A2  A1         A3  A1  A2
A3  A4         A4  A5  A6
A4  A3         A6  A4  A5
A5  A6         A7  A8  A9
A6  A5         A9  A7  A8
..  ..         ..  ..  ..

Catatan: k adalah jumlah drive, n #, f # dan o # adalah parameter dalam opsi mdadm --layout. Linux juga dapat membuat konfigurasi RAID standar lainnya menggunakan driver md (0, 1, 4, 5, 6).

xenoterracide
sumber
6

Dari apa yang saya baca, sebuah array RAID2 f2 menyimpan setidaknya 2 salinan dari setiap blok dan disimpan jauh satu sama lain.

Berikut adalah bagian yang relevan dari halaman manual.

mdadm (8)

-p, --layout = Opsi ini mengonfigurasi detail halus tata letak data untuk raid5, dan raid10 array
...
Akhirnya, opsi tata letak untuk RAID10 adalah salah satu dari 'n', 'o' atau 'p' diikuti oleh kecil jumlah. Standarnya adalah 'n2'.

n memberi sinyal pada salinan 'dekat'. Beberapa salinan dari satu blok data berada pada offset yang sama di perangkat yang berbeda.

o menandakan salinan 'offset'. Daripada potongan yang diduplikasi dalam satu strip, seluruh strip digandakan tetapi diputar oleh satu perangkat sehingga duplikat blok berada di perangkat yang berbeda. Dengan demikian salinan selanjutnya dari sebuah blok ada di drive berikutnya, dan satu potong lebih jauh ke bawah.

f menandakan salinan ' jauh ' (banyak salinan memiliki offset yang sangat berbeda). Lihat md (4) untuk detail lebih lanjut tentang 'dekat' dan 'jauh'.

md (4)

RAID10 menyediakan kombinasi RAID1 dan RAID0, dan kadang-kadang dikenal sebagai RAID1 + 0. Setiap datablock digandakan beberapa kali, dan kumpulan data yang dihasilkan didistribusikan melalui beberapa drive. Ketika mengkonfigurasi array RAID10, perlu untuk menentukan jumlah replika dari setiap blok data yang diperlukan (ini biasanya 2) dan apakah replika harus 'dekat', 'offset' atau 'jauh'. (Perhatikan bahwa tata letak 'offset' hanya tersedia dari 2.6.18).

Ketika replika ' dekat ' dipilih, banyak salinan dari potongan yang diberikan diletakkan secara berurutan di sepanjang larik array, sehingga dua salinan datablock kemungkinan akan berada pada offset yang sama pada dua perangkat yang berdekatan.

Ketika replika ' jauh ' dipilih, banyak salinan dari potongan yang diberikan diletakkan agak jauh satu sama lain. Salinan pertama dari semua blok data akan dilucuti di bagian awal semua drive dalam mode RAID0, dan kemudian salinan semua blok akan dilewati di bagian selanjutnya dari semua drive, selalu memastikan bahwa semua salinan dari blok yang diberikan adalah pada drive yang berbeda.

Pengaturan ' jauh ' dapat memberikan kinerja membaca berurutan sama dengan array RAID0, tetapi dengan biaya kinerja penulisan terdegradasi.

Ketika replika 'offset' dipilih, banyak salinan dari potongan yang diberikan diletakkan pada drive yang berurutan dan pada offset yang berurutan. Secara efektif setiap strip digandakan dan salinannya diimbangi oleh satu perangkat. Ini harus memberikan karakteristik baca yang mirip dengan 'jauh' jika ukuran bongkahan besar yang sesuai digunakan, tetapi tanpa banyak mencari tulisan.

Perlu dicatat bahwa jumlah perangkat dalam array RAID10 tidak perlu kelipatan dari jumlah replika dari setiap blok data, yang harus ada setidaknya perangkat sebanyak replika.

Jika, misalnya, sebuah array dibuat dengan 5 perangkat dan 2 replika, maka ruang yang setara dengan 2,5 perangkat akan tersedia, dan setiap blok akan disimpan pada dua perangkat yang berbeda.

Sakit kepala
sumber
Kedengarannya seperti offset adalah cara untuk pergi ...
xenoterracide
Saya pikir penjelasan yang lebih visual Wikipedia lebih jelas ... jadi saya sudah diposting di sini.
xenoterracide
2

Itu menarik dan dijelaskan dengan baik. Namun, RAID1 polos juga memiliki fitur, setidaknya pada RAID perangkat lunak Linux, untuk dapat mempertahankan banyak pembaca secara paralel dengan kinerja yang sangat baik:

Data dibaca dari salah satu perangkat. Pengemudi mencoba untuk mendistribusikan permintaan baca di semua perangkat untuk memaksimalkan kinerja.
[...] Secara teori, memiliki N-disk RAID1 akan memungkinkan utas berurutan N membaca dari semua disk. (man 4 md, bagian RAID1)

Kelihatannya RAID10, dalam tata letaknya yang dekat, lebih cocok untuk perilaku ini (mempercepat I / O bukan single-threaded seperti RAID0 tetapi multi-threaded I / O). n2f2 dengan 4 disk mirip dengan RAID1 dengan 4 disk.

Tata letak n2 dengan 4 disk akan melakukan keduanya: menggandakan kinerja baca untuk utas tunggal, dan melipatgandakan kinerja baca untuk dua utas (jika penjadwal Linux md RAID10 diimplementasikan dengan baik, satu utas harus dibaca berpasangan, dan yang lainnya pada pasangan lainnya).

Semua tergantung apa yang Anda butuhkan! Saya belum melakukan tolok ukur.

alfabet
sumber