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) baruy
Masukkan untuk mengonfirmasi keputusan Andan
Masukkan untuk partisi baru
Masukkan untuk default partisi pertama
Enter untuk default sektor pertama
Enter untuk default sektor terakhirfd00
Masukkan untuk jenis RAID Linuxw
Masukkan untuk menulis perubahany
Masukkan untuk mengonfirmasi keputusan Anda
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