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
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
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.