GNU/Linux >> Belajar Linux >  >> Cent OS

Memahami multipath Linux (dm-multipath)

Apa itu multipath?

Multipathing memungkinkan kombinasi beberapa koneksi fisik antara server dan array penyimpanan ke dalam satu perangkat virtual. Ini dapat dilakukan untuk menyediakan koneksi yang lebih tangguh ke penyimpanan Anda (jalur yang turun tidak akan menghambat konektivitas), atau untuk menggabungkan bandwidth penyimpanan untuk meningkatkan kinerja.

Sebagai contoh, server dalam diagram berikut memiliki dua HBA, masing-masing terhubung ke sakelar Fibre Channel terpisah, yang pada gilirannya terhubung ke pengontrol terpisah pada larik penyimpanan.

Red Hat Enterprise Linux 7 mendukung multipathing menggunakan dm-multipath subsistem. Ini menggunakan sistem pemetaan perangkat kernel untuk menghasilkan perangkat virtual, yang dikelola oleh daemon multipathd dan alat baris perintah multipath.

Binari, daemon, dan modul kernel yang diperlukan tersedia dalam paket device-mappermultipath. Setelah device-mapper-multipath diinstal, dikonfigurasi, dan dimulai, node perangkat untuk perangkat multipath akan dibuat di dua lokasi berbeda.

Untuk tujuan administratif, perangkat multipath dibuat di bawah /dev/mapper . Mereka dapat diberi nama mpathN[pM] jika nama yang mudah digunakan dipilih, atau dapat dinamai menurut World Wide ID (WWID) perangkat penyimpanan. Administrator juga dapat menetapkan nama khusus untuk perangkat multipath. Nama kustom ini dibuat menggunakan opsi alias di bagian multipath dari file konfigurasi multipath.

Perangkat multipath juga dibuat di bawah /dev dalam bentuk /dev/dm-N untuk mencocokkan yang dibuat di bawah /dev/mapper. Perangkat ini hanya untuk penggunaan internal sistem dan oleh karena itu tidak boleh digunakan secara langsung untuk tujuan administratif.

Catatan :Multipathing memberikan perlindungan terhadap jalur akses penyimpanan yang turun. Jika penyimpanan itu sendiri menjadi tidak tersedia, akses ke penyimpanan akan hilang.

Untuk membuat perangkat multipath, jalur yang berbeda akan digabungkan ke dalam grup, berdasarkan setelan di /etc/multipath.conf berkas konfigurasi. Biasanya hanya satu grup yang akan aktif pada satu waktu, tetapi grup dapat terdiri dari beberapa jalur. Ketika sebuah grup gagal, daemon multipath akan mengalihkan lalu lintas penyimpanan ke grup yang berbeda.

Mengonfigurasi multipath

Untuk mengkonfigurasi multipathing, pertama-tama pastikan bahwa paket device-mapper-multipath diinstal.

# yum -y install device-mapper-multipath

Setelah paket device-mapper-multipath diinstal, file konfigurasi harus dibuat untuk daemon multipath, /etc/multipath.conf. Cara termudah untuk membuat file ini adalah dengan menggunakan mpathconf kegunaan.

Jika sudah ada file bernama /etc/multipath.conf, perintah mpathconf akan mengedit file tersebut. Jika file tersebut tidak ada, mpathconf akan menyalin konfigurasi default dari /usr/share/doc/device-mapper-multipath-*/multipath.conf . Jika file tersebut tidak ada, mpathconf akan membuat file konfigurasi baru dari awal.

Untuk membuat konfigurasi default, lalu memulai dan mengaktifkan daemon multipathd, gunakan perintah berikut:

# mpathconf --enable --with_multipathd y --with_chkconfig y
Catatan :Dalam file konfigurasi default yang dibuat oleh mpathconf, nama yang mudah digunakan diaktifkan dengan opsi user_friendly_names. Nama yang mudah digunakan akan menghasilkan perangkat multipath yang diberi nama mpathN. Meskipun ini dapat berguna jika hanya ada satu perangkat multipath, ini dapat menjadi membingungkan ketika ada beberapa perangkat multipath. Untuk menonaktifkan nama yang mudah digunakan, gunakan –nama_pengguna_ramah n pilihan untuk mpathconf. Ini akan menghasilkan perangkat multipath yang dinamai menurut WWID mereka.

Jika konfigurasi multipath fine-tuning diinginkan sebelum memulai daemon multipathd, gunakan perintah mpathconf hanya dengan opsi –enable:

# mpathconf --enable

Setelah mengedit file konfigurasi, aktifkan dan mulai daemon multipathd seperti biasa dengan perintah systemctl.

File konfigurasi multipath.conf

File konfigurasi multipath.conf terdiri dari lima bagian:

bagian multipath.conf Deskripsi
daftar hitam'{} Bagian ini menentukan perangkat mana yang harus dikeluarkan dari penemuan topologi multipath.
blacklist_exceptions {} Bagian ini menentukan perangkat mana yang harus disertakan dalam penemuan topologi multipath, meskipun terdaftar di bagian daftar hitam.
default {} Bagian ini mendefinisikan setelan default yang akan digunakan untuk semua multipath, kecuali secara eksplisit diganti di bagian {} perangkat atau multipath {}.
perangkat {} Bagian ini berisi penggantian untuk bagian {} default untuk tipe perangkat tertentu, kecuali diganti dari bagian {} multipath. Perangkat diidentifikasi berdasarkan vendor, produk, dan kata kunci revisi (ekspresi reguler yang cocok dengan informasi dari sysfs).
multipath {} Bagian ini berisi pengaturan untuk multipath tertentu. Bagian ini menggantikan apa yang didefinisikan di bagian {} default dan {} perangkat. Multipath diidentifikasi berdasarkan WWID-nya (diperoleh menggunakan fungsi getuid_callout).

Cara mudah untuk mengingat penggantian adalah:multipaths> perangkat> default .

Daftar Hitam

Perangkat bisa masuk daftar hitam dalam file konfigurasi menggunakan daftar hitam {} bagian dari multipath.conf. Jika memasukkan daftar hitam menggunakan karakter pengganti, masing-masing perangkat bisa dikecualikan dari daftar hitam menggunakan bagian {} daftar hitam_pengecualian. Perangkat dapat masuk daftar hitam menggunakan node perangkat mereka atau WWID mereka. Contoh berikut menunjukkan contoh keduanya:

blacklist {
    devnode "^cciss" 
    wwid 1234567890abcde
}

Untuk menentukan WWID perangkat disk, gunakan utilitas scsi_id.

/usr/lib/udev/scsi_id -g -u /dev/sdN 
360014053bd9ea2a35914e39a556051cf

Default

Default untuk semua multipath bisa disetel di default {} bagian dari multipath.conf. Daftar lengkap semua bawaan bawaan dapat ditemukan di file /usr/share/doc/devicemapper-multipath-*/multipath.conf.defaults. Beberapa pengaturan yang paling menarik adalah:

  • path_selector :Algoritme yang menentukan jalur mana di dalam grup prioritas yang akan digunakan untuk I/O berikutnya. Default “round-robin 0 ” mendistribusikan I/O ke semua jalur dalam grup. Jumlah permintaan yang akan dikirim menggunakan satu jalur sebelum beralih ke jalur berikutnya ditentukan oleh rr_min_io_rq pengaturan. Alternatifnya adalah “panjang antrian 0 “, yang akan mengirimkan permintaan I/O berikutnya ke jalur dengan antrean terpendek dari permintaan yang belum diselesaikan, dan “waktu layanan 0 “, yang akan mengirimkan permintaan 1/0 berikutnya ke jalur yang memiliki perkiraan waktu layanan terpendek.
  • path_grouping_policy :Pengaturan ini menentukan bagaimana beberapa jalur digabungkan menjadi grup prioritas. Di default failover , setiap jalur akan dimasukkan ke dalam grup terpisah. Di sisi lain, dengan multibus kebijakan, semua jalur yang mungkin dikumpulkan menjadi satu grup. Sebelum mengonfigurasi perangkat multipath untuk menggunakan kebijakan multibus, pastikan pengontrol penyimpanan mendukung koneksi aktif-aktif.
  • pemeriksa jalur :Pengaturan ini menentukan bagaimana daemon multipathd akan menentukan apakah suatu jalur sehat. Selain opsi independen perangkat keras dari directio dan readsector0 , ada sejumlah pemeriksa independen perangkat keras. Meskipun default untuk opsi ini adalah directio, biasanya diganti di salah satu perangkat default yang ditetapkan di bagian {} perangkat.
  • fitur :Opsi ini menentukan fitur multipath yang akan diaktifkan. Sintaksnya berupa daftar angka , di mana num mewakili jumlah fitur yang diaktifkan dan list mewakili daftar fitur yang diaktifkan. Dua fitur yang tersedia adalah queue_if_no_path dan tanpa_partisi .
  • nama_ramah_pengguna :Pengaturan ini menentukan apakah multipath tanpa alias yang ditentukan akan diberi nama mpathN (bila disetel ke ya), atau apakah mereka akan dinamai menurut WWID.
Catatan :Jika fitur queue_if_no_path diaktifkan dengan pengaturan, fitur “1 queue_if_no_path”, dan jalur gagal, proses yang mengeluarkan I/O akan hang hingga jalur dipulihkan. Perilaku ini tidak diinginkan dalam implementasi cluster karena satu node yang macet memblokir 1/0 ke perangkat penyimpanan yang gagal dapat memblokir sisa cluster untuk mengakses sumber daya penyimpanan. Untuk menghindari situasi ini, tentukan nilai gagal untuk parameter no-path_retry. Melakukannya akan membuat I/O gagal segera mencadangkan ke lapisan yang lebih tinggi daripada memblokir 1/0 tanpa batas waktu hingga jalur dipulihkan.Catatan :Bagian {} default yang dikomentari dalam multipath.conf yang dihasilkan oleh mpathconf tidak mencerminkan default bawaan daemon multipath yang sebenarnya.

Bagian {} perangkat

Di perangkat {} bagian, default untuk perangkat tertentu dapat diganti. Di dalam bagian {} perangkat, ada subbagian {} perangkat individual yang merinci setelan untuk perangkat tertentu. Sebagian besar perangkat keras penyimpanan umum sudah memiliki bagiannya sendiri yang ditentukan dalam default bawaan untuk daemon multipath. Jika perangkat keras tidak (belum) terdaftar, bagian untuk perangkat keras dapat ditambahkan secara manual. Berikut ini adalah contoh definisi untuk perangkat keras penyimpanan yang tidak ada. Perangkat itu sendiri dipilih menggunakan kombinasi vendor , produk , dan revisi .

devices { 
    device { 
        vendor "MegaHyperSuperStorage" 
        product "BAS" 
        revision "513/B" 
        features "1 queue_if_no_path" 
        path_grouping_policy multibus 
        path_checker tur 
    }
}

Dalam contoh sebelumnya, baris fitur menunjukkan bahwa permintaan I/O baru akan diterima dan diantrekan meskipun saat ini tidak ada jalur yang tersedia.

Bagian {} multipath

Dalam multipath {} bagian, override dapat didefinisikan untuk multipath tertentu. Ini dapat digunakan untuk menetapkan kebijakan path_grouping yang berbeda untuk multipath tertentu. Salah satu penggunaan umum lainnya dari bagian {} multipath adalah untuk mendefinisikan alias untuk multipath. Saat alias disetel. nama node perangkat di /dev/mapper/ untuk multipath ini akan didasarkan pada alias, sehingga lebih mudah untuk membedakan antara multipath yang berbeda.

Sebagai contoh, konfigurasi berikut akan menetapkan alias penyimpanan klaster untuk multipath dengan WWID “1234567890abcdef”, serta path_selector dari panjang antrian.

multipaths { 
    multipath { 
        wwid "1234567890abcdef" 
        alias "clusterstorage" 
        path_selector "queue-length 0"
    }
}

Menambahkan partisi

Untuk menambahkan partisi pada perangkat multipath, gunakan langkah-langkah berikut:

  1. Buat partisi pada perangkat multipath menggunakan editor partisi, mis., fdisk /dev/mapper/mpath0 .
  2. Jalankan partprobe perintah untuk memperbarui tampilan kernel dari tabel partisi di semua perangkat (termasuk perangkat yang disusun menjadi multipath).
  3. Jalankan perintah, kpartx -a , pada perangkat multipath untuk membuat perangkat pemetaan perangkat untuk partisi yang baru dibuat.

Menghapus multipath

Setelah menghapus semua jalur untuk multipath, hapus perangkat multipath dengan menjalankan perintah multipath -f [device] . Jika daemon multipathd telah dihentikan dan masih ada node perangkat untuk perangkat multipath, bersihkan semua perangkat multipath dengan menjalankan multipath -F . Ini dapat berguna saat menguji konfigurasi yang berbeda dan melihat sisa-sisa konfigurasi lama yang masih ada.


Cent OS
  1. Memahami Utilitas multipath untuk Mengonfigurasi DM-Multipath

  2. Memahami dm-Multipath Identifiers di Linux

  3. Memahami file Konfigurasi dm-multipath /etc/multipath.conf

  1. Linux – Memahami Izin Unix Dan Jenis File?

  2. Memahami deamon DM-multipath (multipathd)

  3. Memahami File /etc/inittab di Linux

  1. Memahami sistem file Btrfs di Fedora Linux

  2. Linux – Semuanya Adalah File?

  3. Memahami file /etc/hosts di Linux