GNU/Linux >> Belajar Linux >  >> Linux

Implementasi Mdadm Raid Dengan Partisi Gpt?

Ide saya saat ini adalah membuat satu larik perangkat lunak, kelas RAID-6, dengan 4 drive anggota, menggunakan mdadm .

Secara khusus, drive akan menjadi 1 TB HDD pada SATA di server kecil Dell T20.

Sistem Operasinya adalah GNU/Linux Debian 8.6 (kemudian ditingkatkan:Jessie Stretch Buster)

Itu akan membuat ruang disk 2 TB dengan paritas 2 TB dalam kasus saya.

Saya juga ingin memilikinya dengan tabel partisi GPT, agar itu berfungsi, saya tidak yakin bagaimana melanjutkan secara khusus seandainya saya lebih suka melakukan ini murni melalui terminal.

Karena saya tidak pernah membuat larik RAID, dapatkah Anda memandu saya tentang bagaimana saya harus melanjutkan?

Catatan:

  • Array ini hanya akan berfungsi untuk satu-satunya data. Tidak ada boot atau OS di dalamnya.

  • Saya memilih RAID-6 karena tujuan dari array ini. Dua kegagalan drive array harus mampu bertahan. Karena saya dibatasi oleh perangkat keras hingga 4 drive, tidak ada alternatif selain RAID-6 yang saya ketahui. (Seburuk apapun pelambatan RAID-6, hal itu tidak menjadi masalah dalam larik ini.)

Jawaban yang Diterima:

Dalam jawaban ini, jelaskan bahwa semua data akan dimusnahkan di semua anggota array (drive), jadi buat cadangannya terlebih dahulu!

Buka terminal dan menjadi root (su ); jika Anda memiliki sudo diaktifkan, Anda juga dapat melakukan misalnya sudo -i; lihat man sudo untuk semua opsi):

sudo -i

Pertama, kita harus menghapus drive, jika ada data dan sistem file sebelumnya, yaitu. Misalkan kita memiliki 4 anggota:sdi , sdj , sdk , sdl . Untuk mendapatkan umpan balik dari proses ini secara visual, pv (penampil pipa ) digunakan di sini:

pv < /dev/zero > /dev/sdi
pv < /dev/zero > /dev/sdj
pv < /dev/zero > /dev/sdk
pv < /dev/zero > /dev/sdl

Atau, untuk hanya memeriksa apakah tidak ada yang tertinggal, Anda dapat mengintip dengan GParted di semua drive, dan jika ada partisi dengan atau tanpa sistem file apa pun, menghapusnya sudah cukup, meskipun saya sendiri lebih suka yang di atas memusatkan semua drive yang terlibat, ingatlah untuk melepas semua partisi sebelum melakukannya, itu bisa dilakukan mirip dengan satu baris berikut:

umount /dev/sdi?; wipefs --all --force /dev/sdi?; wipefs --all --force /dev/sdi
umount /dev/sdj?; wipefs --all --force /dev/sdj?; wipefs --all --force /dev/sdj
umount /dev/sdk?; wipefs --all --force /dev/sdk?; wipefs --all --force /dev/sdk
umount /dev/sdl?; wipefs --all --force /dev/sdl?; wipefs --all --force /dev/sdl

Kemudian, kami menginisialisasi semua drive dengan tabel partisi GUID (GPT), dan kami perlu mempartisi semua drive, tetapi jangan lakukan ini dengan GParted, karena itu akan membuat sistem file dalam proses, yang tidak kami inginkan, gunakan gdisk sebagai gantinya:

gdisk /dev/sdi
gdisk /dev/sdj
gdisk /dev/sdk
gdisk /dev/sdl

Dalam semua kasus gunakan yang berikut ini:

o Masukkan untuk tabel partisi GUID kosong (GPT) baru
y Masukkan untuk mengonfirmasi keputusan Anda
n Masukkan untuk partisi baru
Masukkan untuk default partisi pertama
Enter untuk default sektor pertama
Enter untuk default sektor terakhir
fd00 Masukkan untuk jenis RAID Linux
w Masukkan untuk menulis perubahan
y Masukkan untuk mengonfirmasi keputusan Anda

Terkait:CPU tujuan umum sebagai penganalisis logika lebih baik/lebih buruk daripada implementasi FPGA khusus?

Anda dapat memeriksa drive sekarang:

mdadm --examine /dev/sdi /dev/sdj /dev/sdk /dev/sdl

Seharusnya tertulis:

(type ee)

Jika ya, sekarang kita periksa partisinya:

mdadm --examine /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Seharusnya tertulis:

No md superblock detected

Jika ya, kita dapat membuat larik RAID6:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

Kita harus menunggu sampai array sepenuhnya dibuat, proses ini kita dapat dengan mudah watch :

watch cat /proc/mdstat

Setelah pembuatan array, kita harus melihat detailnya:

mdadm --detail /dev/md0

Seharusnya tertulis:

          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0

Sekarang kita membuat sistem file pada array, jika Anda menggunakan ext4 , di bawah tersembunyi perintah lebih baik dihindari, karena ext4lazyinit akan memakan banyak waktu jika array besar, maka namanya, “lazyinit “, oleh karena itu saya sarankan Anda untuk menghindari yang satu ini:

mkfs.ext4 /dev/md0

Sebagai gantinya, Anda harus memaksa inisialisasi instan penuh (dengan 0% disediakan untuk root karena ini adalah larik data):

mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

Dengan menentukan opsi ini, inode dan jurnal akan segera diinisialisasi selama pembuatan, berguna untuk array yang lebih besar.

Jika Anda memilih untuk mengambil jalan pintas dan membuat ext4 sistem file dengan "perintah yang lebih baik dihindari", perhatikan bahwa ext4lazyinit akan membutuhkan waktu yang cukup lama untuk menginisialisasi semua inode, Anda dapat menontonnya sampai selesai, mis. dengan iotop atau nmon .

Apa pun yang Anda pilih untuk membuat inisialisasi sistem file, Anda harus memasangnya setelah inisialisasi selesai.

Kami sekarang membuat beberapa direktori untuk larik RAID6 ini:

mkdir -p /mnt/raid6

Dan cukup pasang:

mount /dev/md0 /mnt/raid6

Karena pada dasarnya kita sudah selesai, kita dapat menggunakan GParted lagi untuk memeriksa dengan cepat apakah itu menunjukkan linux-raid filesystem, bersama dengan raid tandai di semua drive.

Jika ya, kami membuat larik RAID6 dengan partisi GPT dengan benar dan sekarang dapat menyalin file di dalamnya.

Lihat apa UUID md sistem file memiliki:

blkid /dev/md0

Salin UUID ke clipboard.

Sekarang kita perlu mengedit fstab , dengan editor teks favorit Anda, saya menggunakan nano , meskipun sudoedit mungkin lebih baik digunakan:

nano /etc/fstab

Dan tambahkan tambahkan entri ke dalamnya:

UUID=<the UUID you have in the clipboard>    /mnt/raid6    ext4    defaults    0 0

Saya sendiri tidak menyarankan menggunakan defaults set bendera, saya hanya ingin garisnya tidak terlalu rumit.

Inilah flag mount yang saya gunakan pada RAID data cadangan UPS (bukan defaults ):
nofail,nosuid,nodev,noexec,nouser,noatime,auto,async,rw,data=journal,errors=remount-ro

Anda dapat memeriksa apakah sudah benar setelah Anda menyimpan perubahan:

mount -av | grep raid6

Seharusnya tertulis:

already mounted

Jika ya, kami menyimpan konfigurasi array; jika Anda tidak memiliki md perangkat belum dibuat, Anda cukup melakukan:

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

Jika sudah ada array, jalankan saja perintah sebelumnya tanpa mengalihkan ke file konfigurasi:

mdadm --detail --scan

dan tambahkan array baru ke file konfigurasi secara manual.

Terkait:Proses waktu mulai dengan zona waktu?

Terakhir, jangan lupa untuk memperbarui initramfs Anda , karena jika tidak, array baru Anda hanya akan merakit hanya-baca otomatis, mungkin sebagai /dev/md127 atau serupa:

update-initramfs -u -k all

Periksa apakah Anda melakukan semuanya sesuai rencana, dan jika demikian, Anda dapat memulai ulang:

reboot

Linux
  1. Mengganti drive RAID 6 yang gagal dengan mdadm

  2. Bagaimana Tonstall Ubuntu 14.04 Dengan Raid 1 Menggunakan Desktop Installer?

  3. Konfigurasikan Mdadm Untuk Array Penyimpanan Cepat Intel yang Ada?

  1. Tutorial Bash Array Terbaik dengan 15 Contoh

  2. mdadm:perintah tidak ditemukan

  3. Apakah RAID1 meningkatkan kinerja dengan Linux mdadm?

  1. strategi partisi dan subvol dengan btrfs

  2. Membangun kembali larik mdadm RAID5 dengan lebih sedikit disk

  3. Tambahkan linux md raid write journal ke dan array yang ada