GNU/Linux >> Belajar Linux >  >> Linux

Buat &Migrasi Sistem RedHat / CentOS yang Ada ke RAID 1 / RAID 10

Sistem Linux memiliki dukungan bawaan untuk RAID perangkat lunak, melalui perangkat MD alias RAID Perangkat Lunak Linux. Sebagian besar distribusi Linux seperti Red Hat Enterprise Linux (RHEL) dan CentOS memungkinkan Anda untuk dengan mudah mengatur array RAID saat menginstal sistem operasi. Namun, jika Anda sudah memiliki sistem yang berfungsi dan berjalan dengan banyak hard disk drive, tetapi sejauh ini berjalan pada sistem disk tunggal, konversi dari disk tunggal ke RAID melibatkan lebih banyak risiko dan kemungkinan kegagalan sistem.

RAID memberikan manfaat dalam hal redundansi data dan peningkatan kinerja, dan pengaturan yang disarankan untuk server penting misi. Misalnya, RAID 1 menghasilkan kumpulan cermin, yang dapat mentolerir kegagalan disk tunggal, sementara berpotensi mempercepat kinerja karena permintaan baca dapat dilayani oleh disk apa pun dalam larik. RAID 10 (RAID 1+0) adalah rangkaian kumpulan cermin, atau RAID 0 kumpulan cerminan RAID 1, yang memberikan throughput dan latensi yang lebih baik, sekaligus mentolerir kegagalan beberapa disk selama tidak ada cermin yang kehilangan semua drive-nya.

Tutorial ini memberikan panduan langkah demi langkah tentang cara membuat RAID 1 secara manual pada sistem dua disk atau RAID 10 pada sistem empat disk pada sistem yang sedang berjalan dan telah menginstal CentOS / RedHat. Bootloader GRUB juga dikonfigurasi sedemikian rupa sehingga sistem masih dapat melakukan booting jika salah satu hard drive gagal. Ini berguna terutama jika Anda tidak dapat mengakses konsol di server khusus yang berlangganan dari perusahaan hosting web, yang secara tidak sengaja mencegah Anda membuat perangkat RAID selama penginstalan.

Fase pertama dari migrasi sistem yang sedang berjalan ke RAID tanpa kehilangan data adalah untuk memastikan semua data saat ini direplikasi ke RAID yang terdegradasi. Dalam tutorial ini, kita akan bekerja pada sistem yang dilengkapi dengan 477 MB /boot partisi sebagai /dev/sda1, lebih dari 900 GB / partisi root sebagai /dev/sda2, 4 GB ruang swap di /dev/sda3, dan lainnya Partisi logis 4GB /tmp /dev/sda5 dihosting di /dev/sda4 partisi extended.

  1. Periksa dan pastikan tidak ada perangkat RAID yang berjalan saat ini. Isi file /etc/mdadm.conf dan hasil cat /proc/mdstat harus kosong, dan tidak ada array yang dapat ditemukan di file konfigurasi atau secara otomatis.
    mdadm --examine --scan > /etc/mdadm.conf
    mdadm --assemble --scan 
    cat /proc/mdstat
  2. Sebagai tindakan pencegahan, matikan semua larik yang dapat dimatikan (yaitu saat ini tidak digunakan):
    mdadm --stop --scan
  3. Ubah tabel partisi disk menjadi MBR dengan perintah berikut. Lewati langkah ini jika disk Anda tidak memiliki tabel partisi GTP.
    parted /dev/sdb
    (parted) mktable msdos
    (parted) quit

    Jawaban Y(es) ketika diminta dengan “peringatan:Label disk yang ada di /dev/sdb akan dimusnahkan dan semua data di disk ini akan hilang. Apakah Anda ingin melanjutkan?”

    Kirim pembaruan ke kernel:

    partprobe /dev/sdb

    Ulangi perintah untuk drive lain, yaitu /dev/sdc dan /dev/sdd, jika ada.

  4. Partisi hard drive sesuai keinginan Anda.

    Dalam tutorial ini, kita akan menggunakan perintah berikut untuk membuat partisi yang identik dengan drive yang ada, /dev/sda:

    sfdisk -d /dev/sda | sfdisk --force /dev/sdb

    Ulangi perintah untuk drive lain, yaitu /dev/sdc dan /dev/sdd, jika ada.

    TipJika Anda menggunakan "fdisk" untuk membuat partisi secara manual, Anda dapat menggunakan perintah "sfdisk" di atas untuk mereplikasi struktur partisi ke disk lain jika Anda memiliki lebih dari 1 hard drive tambahan. Misalnya, “sfdisk -d /dev/sdb | sfdisk –force /dev/sdc” akan mereplikasi partisi /dev/sdb ke /dev/sdc.
  5. Mengubah jenis partisi ke deteksi otomatis RAID Linux. Untuk melakukannya, "fdisk" hard disk tertentu. Misalnya,
    fdisk /dev/sdb

    Kemudian, terbitkan t perintah:

    Command (m for help): t
    Partition number (1-5): 1
    Hex code (type L to list codes): fd
    Changed system type of partition 1 to fd (Linux raid autodetect)

    Ulangi proses untuk sisa partisi pada disk. Kemudian, buat perubahan itu permanen:

    Command (m for help): w

  6. Hapus RAID untuk disk baru, untuk berjaga-jaga jika RAID telah disiapkan pada disk "baru" sebelumnya:
    mdadm --stop --scan
    mdadm --zero-superblock /dev/sdb{1..9}

    Dan kemudian kirim pembaruan ke kernel:

    partprobe /dev/sdb

    Ulangi perintah untuk drive lain, yaitu /dev/sdc dan /dev/sdd, jika ada.

  7. Muat modul yang diperlukan ke dalam kernel:
    modprobe raid0
    modprobe raid1
    modprobe raid10

    Jika Anda menjalankan “cat /proc/mdstat” sekarang, Anda akan melihat sesuatu yang mirip seperti:

    Kepribadian :[raid0] [raid1] [raid10]
    perangkat yang tidak digunakan:

    Modul terkait RAID telah dimuat di kernel, tetapi tidak ada set RAID yang dikonfigurasi.

  8. Buat perangkat RAID dalam keadaan terdegradasi karena satu drive hilang, yaitu /dev/sda yang saat ini diinstal dengan OS dan digunakan untuk boot. Karena CentOS dan RedHat versi 5.0 dan 6.0 menggunakan Grub 0.97 secara default, “–metadata=0.9” ditentukan sehingga versi superblok yang lebih lama digunakan. Jika tidak, Grub mungkin merespons dengan kesalahan "tipe sistem file tidak diketahui, tipe partisi 0xfd" dan menolak untuk menginstal. Selain itu, mdadm juga akan membunyikan peringatan untuk larik boot:larik ini memiliki metadata di awal dan mungkin tidak cocok sebagai perangkat boot. Jika Anda berencana untuk menyimpan '/ boot' pada perangkat ini, pastikan bahwa boot-loader Anda memahami metadata md/v1.x, atau gunakan –metadata=0,90. Parameter tidak diperlukan dengan Grub2. Sintaks berikut mengasumsikan bahwa kita sedang membangun array RAID10 dengan 4 disk. Ubah ke RAID1 jika Anda hanya memiliki 2 disk dengan mengubah opsi ke “–level=1” dan menghapus partisi disk yang tidak ada.

    Untuk /boot, kami menggunakan RAID1:

    mdadm --create --verbose /dev/md1 --metadata=0.9 --level=1 --raid-devices=4 missing /dev/sdb1 /dev/sdc1 /dev/sdd1

    Untuk / root, gunakan RAID10 sebagaimana dimaksud:

    mdadm --create --verbose /dev/md2 --metadata=0.9 --level=10 --raid-devices=4 missing /dev/sdb2 /dev/sdc2 /dev/sdd2

    Saat menanyakan apakah akan melanjutkan pembuatan larik, jawab Y(es) . Ulangi proses untuk membuat larik RAID untuk ruang swap dan partisi lain, jika tersedia.

    Array NoteRAID tidak dapat dibuat pada partisi yang diperluas, dengan mdadm merespons dengan /dev/sdbX tidak cocok untuk array ini.
  9. Periksa hasilnya dengan:
    cat /proc/mdstat

    Outputnya harus:

    [serangan0] [serangan1] [serangan10]
    md5 :aktif raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 blok 512K potongan 2 hampir salinan [4/3] [_UUU]

    md2 :aktif raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 blok 512K potongan 2 salinan hampir [4/3] [_UUU]
    bitmap:15/15 halaman [60KB], potongan 65536KB

    md1 :aktif raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 blok [4/3] [_UUU]

    md3 :aktif raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 blok 512K potongan 2 hampir salinan [4/3] [_UUU]

    perangkat yang tidak digunakan:

  10. Buat mdadm.conf dari konfigurasi RAID saat ini:
    mdadm --examine --scan >> /etc/mdadm.conf
  11. Buat sistem file pada perangkat RAID baru:
    mkfs.ext4 /dev/md1 # You may want to use mkfs.ext2 for ext2 filesystem for /boot
    mkfs.ext4 /dev/md2 # ext4 filesystem for / root
    mkswap /dev/md3 # Swap space

    Buat sistem file ext4 ke larik RAID baru lainnya yang dibuat.

  12. Ganti entri perangkat di /etc/fstab dengan perangkat RAID baru. Untuk melakukannya, pertama jalankan:
    blkid | grep /dev/md

    Ini mengembalikan output dengan UUID perangkat RAID perangkat lunak baru yang terlihat seperti ini:

    /dev/md1:UUID=”1234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″
    /dev/md2:UUID=”2234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″
    /dev/md3:UUID=”3234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”swap”
    /dev/md5:UUID=”4234abcd-12ab-12ab-12ab-123456abcdef” TYPE=”ext4″

    Di /etc/fstab , ubah baris yang berisi berbagai titik pemasangan ke UUID sistem file RAID baru /dev/mdX baru yang sesuai, yaitu nilai setelah “UUID=". Misalnya,

    UUID=2234abcd-12ab-12ab-12ab-123456abcdef /       ext4   defaults              1 1
    UUID=1234abcd-12ab-12ab-12ab-123456abcdef /boot   ext4   defaults              1 2
    UUID=4234abcd-12ab-12ab-12ab-123456abcdef /tmp    ext4   noexec,nosuid,nodev   1 2
    UUID=3234abcd-12ab-12ab-12ab-123456abcdef swap    swap   defaults              0 0

    Biarkan tmpfs, devpts, sysfs, proc, dan lainnya tidak tersentuh. Tentu saja, jika Anda tahu apa yang Anda lakukan, atau memiliki sistem file yang sangat berbeda, Anda dapat memodifikasi fstab sesuka Anda.

  13. Perbarui initrd dan bangun kembali initramf dengan mdadm.conf baru:
    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.old
    dracut --mdadmconf  --add-drivers "raid1 raid10" --filesystems "ext4 ext3 swap tmpfs devpts sysfs proc" --force /boot/initramfs-$(uname -r).img $(uname -r)

    Catatan:Ganti $(uname -r) dengan versi kernel yang sebenarnya jika perintah tidak bekerja untuk Anda, terutama pada LiveCD.

  14. Di /boot/grub/menu.lst , ubah nilai UUID atau entri label untuk kernel menjadi UUID dari / (direktori root) pada array RAID atau /dev/md2 (ubah sesuai jika /boot Anda dipasang pada partisi yang berbeda). Misalnya:
    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=UUID=2234abcd-12ab-12ab-12ab-123456abcdef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Atau,

    title CentOS (2.6.32-504.3.3.el6.x86_64)
            root (hd0,0)
            kernel /vmlinuz-2.6.32-504.3.3.el6.x86_64 ro root=/dev/md2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
            initrd /initramfs-2.6.32-504.3.3.el6.x86_64.img

    Pastikan TIDAK rn_NO_DM dan rn_NO_MD parameter boot tidak terdaftar sebagai opsi untuk kernel. Setelah selesai mengedit, simpan menu.lst yang diperbarui.

  15. Replikasi secara manual data yang ada pada partisi yang ada ke partisi RAID perangkat lunak baru.

    Untuk / root (/dev/md2, ubah sesuai jika tidak):

    mkdir /mnt/raid
    mount /dev/md2 /mnt/raid
    cd /mnt/raid
    cp -ax / .
    sync

    Untuk /boot:

    rm -rf /mnt/raid/boot
    mkdir /mnt/raid/boot
    mount /dev/md1 /mnt/raid/boot
    cd /mnt/raid/boot
    cp -ax /boot/* .
    sync

    Di SELinux, jalankan juga:touch /mnt/raid/.autorelabel untuk /boot.

    Jika Anda memiliki lebih banyak partisi, seperti /var, /home dan lain-lain, ulangi proses untuk sistem file ini. Misalnya:

    rm -rf /mnt/raid/home
    mkdir /mnt/raid/home
    mount /dev/md1 /mnt/raid/home
    cd /mnt/raid/home
    cp -ax /home/* .
    sync
    TipAda banyak cara untuk menyalin dan menduplikasi file ke array RAID baru. Misalnya:

    rsync -avxHAXS --delete --progress / /mnt/raid
    tar -C / -clspf - . | tar -xlspvf -
    find / -depth -xdev | cpio -pmd /mnt/raid
  16. Instal Grub 0.97 pada MBR semua disk sehingga jika salah satu disk gagal, sistem dapat melakukan booting. Agar hal ini terjadi, langkah berikut harus dilakukan::
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> root (hd1,0)
    grub> setup (hd1)
    grub> root (hd2,0)
    grub> setup (hd2)
    grub> root (hd3,0)
    grub> setup (hd3)
    grub> quit

    Lewati hd2 dan hd3 jika Anda hanya memiliki 2 hard drive.

  17. Kami akan memulai ulang server. Cadangkan semuanya untuk berjaga-jaga jika server tidak kembali, lalu terbitkan:
    reboot

Bagian pertama dari konfigurasi dukungan RAID perangkat lunak Linux pada sistem yang sedang berjalan telah selesai. Jika server kembali, lanjutkan dengan prosedur berikut untuk menambahkan kembali hard disk yang hilang (mis. /dev/sda yang menjalankan sistem awalnya) ke array RAID. Panduan berikut mengasumsikan bahwa sisa disk yang belum ditambahkan ke array RAID adalah /dev/sda. Ubah jika nama perangkat Anda berbeda.

  1. Setelah server melakukan booting, konfirmasikan bahwa sistem file dipasang pada larik RAID, yaitu /dev/md0, /dev/md1…./dev/md3.
    df -h

    Hasil yang diharapkan:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/md2        1.8T  1.2G  1.7T   1% /
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    /dev/md1        477M   76M  377M  17% /boot
    /dev/md5        3.9G  8.1M  3.7G   1% /tmp 
  2. Ubah tabel partisi disk menjadi MBR dengan perintah berikut. Lewati langkah ini jika disk tidak memiliki tabel partisi GTP.
    parted /dev/sda
    (parted) mktable msdos
    (parted) quit

    Jawaban Y(es) ketika diminta dengan “peringatan:Label disk yang ada di /dev/sdb akan dimusnahkan dan semua data di disk ini akan hilang. Apakah Anda ingin melanjutkan?”

  3. Hapus semua partisi yang ada di /dev/sda:
    fdisk /dev/sda
    Command (m for help): d
    Partition number (1-5): 1
    
    Command (m for help): d
    Partition number (1-5): 2
    
    Command (m for help): d
    Partition number (1-5): 3
    
    Command (m for help): d
    Partition number (1-5): 4
    
    Command (m for help): d
    Partition number (1-5): 5
    
    Command (m for help): w
    The partition table has been altered!
    
    Calling ioctl() to re-read partition table.
    Syncing disks.
  4. Hapus semua RAID pada disk:
    mdadm --zero-superblock /dev/sda{1..9}

    Kirim pembaruan ke kernel:

    partprobe /dev/sda
  5. Salin struktur partisi dari /dev/sdb:
    sfdisk -d /dev/sdb | sfdisk --force /dev/sda
  6. Jalankan:
    fdisk -l

    Pastikan bahwa semua partisi yang membentuk larik RAID adalah fd Jenis partisi autodetect RAID Linux (nilai di bawah kolom "Id"). Jika Linux tipe 83, gunakan fdisk, cfdisk atau parted untuk mengubahnya menjadi “fd”. Misalnya:

    Kirim update ke kernel jika ada perubahan.

    partprobe /dev/sda
  7. Tambahkan partisi di /dev/sda ke masing-masing larik RAID untuk melengkapi larik (4 disk di RAID10 atau 2 disk di RAID1):
    mdadm --add /dev/md1 /dev/sda1
    mdadm --add /dev/md2 /dev/sda2
    mdadm --add /dev/md3 /dev/sda3

    Ulangi untuk partisi lain, jika ada.

  8. Periksa kemajuan proses pemulihan RAID dengan:
    cat /proc/mdstat

    Outputnya harus:

    [serangan0] [serangan1] [serangan10]
    md5 :aktif raid10 sdd5[3] sdc5[2] sdb5[1]
    4189184 blok 512K potongan 2 hampir salinan [4/3] [_UUU]

    md2 :aktif raid10 sdd2[3] sdc2[2] sdb2[1]
    1939915776 blok 512K potongan 2 salinan hampir [4/3] [_UUU]
    [====>……………………………….] pemulihan =37,8% (177777777/388888888) selesai=60,5 menit kecepatan=100000K/dtk
    bitmap:15/15 halaman [60KB], potongan 65536KB

    md1 :aktif raid1 sdd1[3] sdc1[2] sdb1[1]
    511936 blok [4/3] [_UUU]

    md3 :aktif raid10 sdd3[3] sdb3[1] sdc3[2]
    8387584 blok 512K potongan 2 hampir salinan [4/3] [_UUU]

    perangkat yang tidak digunakan:

    TipAnda dapat terus me-refresh konten file /proc/mdstat dengan perintah berikut, yang akan di-refresh pada interval 5 detik:

    watch -n 5 cat /proc/mdstat
  9. Buat ulang catatan boot pada /dev/sda MBR dengan grub untuk memastikan bahwa sistem dapat melakukan booting pada disk apa pun:
    grub
    grub> root (hd0,0)
    grub> setup (hd0) 
    grub> quit
  10. Saat memulihkan semua larik RAID, lakukan mulai ulang sistem.
    reboot
  11. Saat sistem kembali aktif dan online, selamat, Anda sekarang menjalankan RAID perangkat lunak.

Setelah RAID diaktifkan dengan mdadm, hal terpenting adalah memastikan bahwa sistem notifikasi peringatan email berfungsi. RAID perangkat lunak Linux dapat memantau sendiri kemungkinan masalah pada larik RAID seperti kegagalan disk, dan dapat mengirim pemberitahuan email saat menemukan kemungkinan kesalahan.

Untuk memverifikasi bahwa pemberitahuan email berfungsi, jalankan perintah berikut:

mdadm --monitor --test --oneshot /dev/md1

Anda akan menerima email dengan isi /proc/mdstat. Jika Anda tidak menerima email, pastikan sistem Anda dapat mengirim email, dan periksa MAILADDR nilai di mdadm.conf . Itu harus membaca sesuatu seperti:

MAILADDR [email protected]

Linux
  1. Cara Migrasi Centos 8 ke AlmaLinux 8.3

  2. Cara Memigrasikan aturan Iptables yang Ada ke Nftables Di CentOS/RHEL 8

  3. RedHat / CentOS :Mengelola RAID perangkat lunak dengan mdadm

  1. Cara mengkonfigurasi Virtualisasi di Redhat Linux

  2. Bagaimana cara membuat Partisi Sistem EFI?

  3. Memperbaiki Jam Sistem CentOS

  1. Cara Membuat File Kickstart Untuk CentOS/Fedora/RedHat (RHEL)

  2. Cara meningkatkan Swap di Linux / CentOS / Redhat / Ubuntu

  3. Cara Migrasi dari CentOS 8 ke Rocky Linux 8