RAID perangkat lunak Linux menggunakan mdadm

mdadm - utilitas untuk bekerja dengan perangkat lunak RAID-array di Linux. Dalam artikel ini kita akan melihat bagaimana cara bekerja dengan utilitas mdadm (beberapa disk admin) untuk membuat array, menambahkan disk, mengelola disk, menambahkan cadangan panas dan banyak informasi yang lebih berguna.

Konten:

  • Instal Perangkat Lunak RAID Management Utility - mdadm
  • Pembuatan RAID dari 2 disk
  • Membuat sistem file pada RAID, pemasangan
  • Lihat status, periksa integritas array RAID
  • Pemulihan RAID setelah kegagalan, penggantian disk
  • Menambah dan menghapus disk dalam array RAID di Linux
  • Menambahkan Hot-Spare Disk ke RAID Array
  • Hapus array
  • Mdmonitor: Memantau Status RAID dan Peringatan Email
  • Array RAID tidak aktif

Instal Perangkat Lunak RAID Management Utility - mdadm

Untuk menginstal utilitas mdadm, jalankan perintah instalasi:

  • Untuk Centos / Red Hat, yum / dnf digunakan: yum instal mdadm
  • Untuk Ubuntu / Debian: apt-get install mdadm

Akibatnya, utilitas mdadm dan perpustakaan yang diperlukan akan diinstal pada sistem:

Menjalankan Instalasi transaksi: libreport-filesystem-2.1.11-43.el7.centos.x86_64 1/2 Menginstal: mdadm-4.1-1.el7.x86_64 2/2 Memverifikasi: mdadm-4.1-1.el7.x86_64 1/2 Memverifikasi: libreport-filesystem-2.1.11-43.el7.centos.x86_64 2/2 Terpasang: mdadm.x86_64 0: 4.1-1.el7 Ketergantungan yang Dipasang: libreport-filesystem.x86_64 0: 2.1.11-43.el7. centos Lengkap!

Pembuatan RAID dari 2 disk

Saya memiliki dua disk tambahan yang diinstal pada server dan saya ingin menurunkan versi mirror perangkat lunak (RAID1). Disk kosong, data tidak ditulis untuk mereka. Untuk memulai, Anda perlu mem-nol semua superblok pada disk yang akan kami tambahkan ke array RAID:

# mdadm --zero-superblock --force / dev / vd b, c

Saya punya dua memiliki dua disk kosong vdb dan vdc.

mdadm: Perangkat komponen md tidak dikenal - / dev / vdb mdadm: perangkat komponen md tidak dikenal - / dev / vdc

Daftar ini berarti tidak ada drive yang telah ditambahkan ke array sebelumnya..

Untuk merakit perangkat lunak RAID1 dari dua disk di perangkat / dev / md0, gunakan perintah:

# mdadm --create --verbose / dev / md0 -l 1 -n 2 / dev / vd b, c

Dimana "-l 1"Merupakan tipe array, dalam kasus kami RAID1

A "-n 2“Adalah jumlah disk yang ditambahkan ke array.

Jika Anda perlu membuat RAID0 dalam mode stripe untuk meningkatkan kecepatan membaca / menulis data dengan memparalelkan perintah antara beberapa disk fisik, gunakan perintah:

# mdadm --create --verbose / dev / md0 --level = 0 --raid-devices = 2 / dev / vdb / dev / vdc

RAID 5 dari tiga drive atau lebih:

# mdadm --create --verbose / dev / md0 --level = 5 --raid-devices = 3 / dev / vdb / dev / vdc / dev / vdd

Setelah menjalankan perintah, Anda perlu mengonfirmasi tindakan dan array akan dibuat:

Sekarang, ketika melihat informasi disk, kami melihat array kami:

# lsblk

NAMA MAJ: MIN RM UKURAN RO TYPE MOUNTPOINT vda 253: 0 0 20G 0 disk ├─vda1 253: 1 0 512M 0 bagian / boot └─vda2 253: 2 0 19.5G 0 bagian / vdb 253: 16 0 20G 0 disk └ ─md0 9: 0 0 20G 0 raid1 vdc 253: 32 0 20G 0 disk └─md0 9: 0 0 20G 0 raid1

Membuat sistem file pada RAID, pemasangan

Untuk membuat sistem file ext4 pada array dua disk RAID1 kami, gunakan perintah:

# mkfs.ext4 / dev / md0

Buat direktori cadangan dan pasang perangkat RAID di atasnya:

# mkdir / cadangan
# mount / dev / md0 / backup /

# df -h

Ukuran Filesystem yang Digunakan Penggunaan yang Tersedia% Dipasang di devtmpfs 485M 0 485M 0% / dev tmpfs 496M 0 496M 0% / dev / shm tmpfs 496M 44M 452M 9% / jalankan tmpfs 496M 0 496M 0% / sys / fs / cgroup / dev / vda2 20G 1.4G 19G 7% / / dev / vda1 488M 100M 353M 23% / boot tmpfs 100M 0 100M 0% / run / pengguna / 0 / dev / md0 20G 45M 19G 1% / cadangan 

Array dipasang tanpa kesalahan. Agar tidak memasang perangkat setiap kali secara manual, kami akan melakukan perubahan fstab:

# nano / etc / fstab

/ dev / md0 / backup ext4 default 1 2

Lihat status, periksa integritas array RAID

Untuk memeriksa integritas data dalam array, gunakan perintah:

#echo 'centang'> / sys / blok / md0 / md / sync_action

Setelah itu, Anda perlu melihat output file:

#cat / sys / block / md0 / md / mismatch_cnt

Jika Anda mendapatkan 0 sebagai hasilnya, maka semuanya baik-baik saja dengan array Anda:

Untuk menghentikan validasi, gunakan perintah:

#echo 'idle'> / sys / block / md0 / md / sync_action

Untuk memeriksa status semua array RAID yang tersedia di server, gunakan perintah:

# cat / proc / mdstat

Personalitas: [raid1] md0: active raid1 vdc [1] vdb [0] 20954112 blok super 1.2 [2/2] [UU]

Dalam daftar tim, kami melihat informasi tentang serangan yang kami buat sebelumnya.

Untuk informasi lebih lanjut tentang array serangan tertentu, lihat perintah:

# mdadm -D / dev / md0

Mari kita menganalisis poin utama dari daftar tim:

  • Versi - versi metadata;
  • Waktu Pembuatan - tanggal dan waktu pembuatan raid-array;
  • Level Raid - level array raid;
  • Ukuran Array - ruang disk untuk array raid;
  • Used Dev Size - volume bekas untuk perangkat;
  • Raid Device - jumlah disk dalam array raid;
  • Total Devices - jumlah disk yang ditambahkan ke array raid;
  • Negara - negara saat ini (bersih - semuanya OK);
  • Perangkat Aktif - jumlah disk aktif dalam array serangan;
  • Working Devises - jumlah disk yang berfungsi dalam array raid;
  • Perangkat Gagal - jumlah perangkat dengan kegagalan dalam susunan raid;
  • Perangkat Cadangan - jumlah disk cadangan dalam array serangan;
  • Kebijakan Konsistensi - parameter yang menentukan jenis sinkronisasi setelah kegagalan dalam raid array, rsync - sinkronisasi penuh setelah pemulihan susunan raid (bitmap, jurnal, mode ppl tersedia);
  • UUID - pengidentifikasi array raid

Informasi singkat dapat dilihat menggunakan utilitas fdisk:

# fdisk -l / dev / md0

Disk / dev / md0: 21,5 GB, 21457010688 byte, 41908224 sektor Unit = sektor 1 * 512 = 512 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte Ukuran I / O (minimum / optimal): 512 byte / 512 byte

Pemulihan RAID setelah kegagalan, penggantian disk

Jika Anda gagal atau merusak salah satu drive di array RAID, Anda dapat menggantinya dengan yang lain. Pertama, mari kita tentukan apakah disk rusak dan disk mana yang harus kita ubah..

# cat / proc / mdstat

Personalitas: [raid1] md0: active raid1 vdb [0] 20954112 blok super 1.2 [2/1] [U_] 

Dari perintah listing, Anda melihat bahwa hanya satu drive yang aktif. Juga berbicara tentang masalah [U_] Saat kedua drive bekerja, output akan [UU].

Informasi RAID terperinci juga menunjukkan bahwa ada masalah:

# mdadm -D / dev / md0

/ dev / md0: Versi: 1.2 Waktu Pembuatan: Sel 29 Okt 12:39:22 PM Level Serangan: raid1 Ukuran Array: 20954112 (19,98 GiB 21,46 GB) Ukuran Dev yang Digunakan: 20954112 (19,98 GiB 21,46 GB) Perangkat Serangan: 2 Total Perangkat: 2 Kegigihan: Superblock gigih Waktu Pembaruan: Sel 29 Okt 14:41:13 2019 Status: clean, terdegradasi Perangkat Aktif: 1 Perangkat Kerja: 1 Perangkat Gagal: 1 

Negara: bersih, rusak - baris ini menunjukkan bahwa disk dalam array serangan rusak.

Dalam kasus kami, kami perlu mengganti disk yang gagal / dev / vdc. Untuk mengembalikan array, Anda perlu menghapus disk kosong dan menambahkan yang baru.

Menghapus disk yang tidak sehat:

# mdadm / dev / md0 --hapus / dev / vdc

Tambahkan disk baru ke array:

# mdadm / dev / md0 --add / dev / vdd

Pemulihan disk akan mulai secara otomatis setelah menambahkan disk baru:

# mdadm -D / dev / md0

/ dev / md0: Versi: 1.2 Waktu Pembuatan: Sel 29 Okt 12:39:22 PM Level Serangan: raid1 Ukuran Array: 20954112 (19,98 GiB 21,46 GB) Ukuran Dev yang Digunakan: 20954112 (19,98 GiB 21,46 GB) Perangkat Serangan: 2 Total Perangkat: 2 Kegigihan: Superblock gigih Waktu Pembaruan: Sel 29 Okt 14:50:20 2019 Status: bersih, rusak, memulihkan Perangkat Aktif: 1 Perangkat Kerja: 2 Perangkat Gagal: 0 Perangkat Spare: 1 Kebijakan Konsistensi: resync Rebuild Status: 69% selesai Nama: server.vpn.rucript (lokal ke host server.vpn.ru) UUID: 9d59b1fb: 7b0a7b6d: 15a75459: 8b1637a2 Acara: 42 Number Major Minor RaidDevice State 0 253 16 0 sinkronisasi aktif / dev / vdb 2 253 48 1 pembangunan kembali cadangan / dev / vdd 

Status bangun kembali: 69% selesai - menunjukkan kondisi saat ini pemulihan array.

pembangunan kembali cadangan / dev / vdd - menunjukkan disk mana yang ditambahkan ke array.

Setelah mengembalikan array, daftar disk terlihat seperti ini:

Status: clean Perangkat Aktif: 2 Perangkat Kerja: 2 Perangkat Gagal: 0 Perangkat Cadangan: 0 

Menambah dan menghapus disk dalam array RAID di Linux

Untuk mem-parsing array yang dibuat sebelumnya, Anda harus melepasnya:

# umount / cadangan

Dan jalankan perintah:

# mdadm -S / dev / md0

mdadm: stops / dev / md0

Setelah menguraikan array, seharusnya tidak didefinisikan sebagai perangkat:

# mdadm -S / dev / md0

mdadm: kesalahan pembukaan / dev / md0: Tidak ada file atau direktori tersebut

Untuk merakit array yang sebelumnya kita uraikan secara manual, jalankan perintah:

# mdadm --assemble -scan

Perintah ini akan memindai disk dari larik RAID yang dibongkar atau diciutkan dan mencoba mengumpulkan RAID dari mereka menggunakan metadata.

Jika Anda perlu menghapus disk yang berfungsi dari array dan menggantinya dengan yang lain, Anda harus terlebih dahulu menandai disk yang bekerja sebagai tidak berfungsi:

# mdadm / dev / md0 --fail / dev / vdc

Kemudian disk dapat dihapus dengan perintah ::

# mdadm / dev / md0 --hapus / dev / vdc

Disk baru ditambahkan, seperti halnya disk yang tidak berfungsi:

# mdadm / dev / md0 --add / dev / vdd

Menambahkan Hot-Spare Disk ke RAID Array

Anda dapat menambahkan ke array cadangan panas drive hot-swappable jika salah satu drive aktif gagal. Tambahkan disk gratis ke array yang diinginkan:

# mdadm / dev / md0 --add / dev / vdc

Setelah memeriksa status array raid, kita akan melihat disk ini sebagai cadangan:

Untuk memeriksa apakah "hot swap " drive, tandai salah satu drive sebagai tidak berfungsi dan periksa status array serangan:

# mdadm / dev / md0 --fail / dev / vdb

Kemudian, ketika memeriksa status array, akan terlihat bahwa pembangunan kembali array telah dimulai:

Berkendara / dev / vdb ditandai sebagai tidak berfungsi, dan disk cadangan panas menjadi salah satu disk RAID aktif dan proses pemulihan dimulai.

Untuk menambahkan disk kerja tambahan ke RAID, Anda perlu melakukan dua langkah.

Tambahkan disk kosong ke array:

# mdadm / dev / md0 --add / dev / vdb

Sekarang drive ini akan ditampilkan sebagai cadangan panas, untuk membuatnya bekerja, perluas array raid:

# mdadm -G / dev / md0 -raid-devices = 3

Maka proses membangun kembali array akan dimulai:

Setelah membangun kembali, semua disk menjadi aktif:

Nomor Major Minor RaidDevice State 3 253 32 0 sinkronisasi aktif / dev / vdc 2 253 48 1 sinkronisasi aktif / dev / vdd 4 253 16 2 sinkronisasi aktif / dev / vdb 

Hapus array

Jika Anda ingin menghapus larik raid secara permanen, gunakan skema berikut:

# umount / cadangan - unmount array dari direktori

# mdadm -S / dev / md0 - hentikan perangkat RAID

Setelah itu, kami menghapus semua superblok pada disk tempat rakitannya:

# mdadm --zero-superblock / dev / vdb
# mdadm --zero-superblock / dev / vdc

Mdmonitor: Memantau Status RAID dan Peringatan Email

Anda dapat menggunakan layanan untuk memantau status array RAID. mdmonitor. Pertama, Anda perlu membuat file /etc/mdadm.conf dengan konfigurasi array saat ini:

# mdadm -detail -scan> /etc/mdadm.conf

File konfigurasi mdadm.conf tidak dibuat secara otomatis. Itu harus dibuat dan diperbarui secara manual..

Di akhir file /etc/mdadm.conf, tambahkan alamat email administrator yang harus Anda kirimi peringatan tentang masalah RAID:

MAILADDR [email protected]

Itu berhenti me-restart layanan mdmonitor melalui systemctl:

# systemctl restart mdmonitor

Setelah itu, sistem akan memberi tahu Anda melalui email tentang kesalahan pada mdadm dan drive yang rusak.

Array RAID tidak aktif

Dalam hal kegagalan peralatan atau matikan darurat, array dapat masuk ke negara tidak aktif. Semua drive ditandai sebagai tidak aktif, tetapi tidak ada kesalahan pada drive.

# cat / proc / mdstat

Personalitas: [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0: vdc tidak aktif [1] vdb [0] 20954112 blok perangkat super tidak digunakan:  

Dalam hal ini, Anda harus menghentikan array dengan perintah:

# mdadm --stop / dev / md0

Dan membangunnya kembali:

# mdadm --assemble --scan -force

Jika array sudah terdaftar di / etc / fstab, Anda harus melakukan remount dengan perintah:

# mount -a

Ada beberapa cara untuk membuat perangkat lunak RAID pada OS yang sudah diinstal. Dalam hal ini, Anda harus secara manual menyalin tabel semua partisi ke disk baru, dan secara manual memindahkan isi disk sistem ke RAID dari satu disk, membersihkan disk pertama dan menambahkannya ke RAID, kemudian memperbaiki initramfs dan boot GRUB. Oleh karena itu, masih lebih baik jika Anda memilih mode, instal CentOS pada perangkat lunak RAID ketika menggunakan server.

Utilitas mdadm menyederhanakan bekerja dengan array serangan di Linux. Dalam artikel ini saya menjelaskan poin utama bekerja dengan utilitas ini, dan juga menyentuh pertanyaan paling umum yang muncul saat bekerja dengan penyerbuan-array melalui utilitas mdadm.