Cara Mengatur RAID Perangkat Lunak untuk Server File Sederhana di Ubuntu
Apakah Anda memerlukan file server dengan harga murah yang mudah diatur, “rock solid” andal dengan Email Alerting? akan menunjukkan kepada Anda cara menggunakan Ubuntu, perangkat lunak RAID dan SaMBa untuk mencapai hal itu.
Ikhtisar
Meskipun desas-desus baru-baru ini untuk memindahkan semuanya ke cloud "all perkasa", kadang-kadang Anda mungkin tidak ingin informasi Anda di server orang lain atau mungkin saja tidak layak untuk mengunduh volume data yang Anda butuhkan dari internet setiap saat (misalnya penggunaan gambar) ). Jadi sebelum Anda membersihkan tempat dalam anggaran Anda untuk solusi penyimpanan, pertimbangkan konfigurasi yang bebas lisensi dengan Linux.
Dengan mengatakan bahwa, menjadi murah / gratis tidak berarti “berhati-hati terhadap angin”, dan untuk itu, kami akan mencatat poin yang harus diperhatikan, konfigurasi yang harus ditetapkan selain menggunakan perangkat lunak RAID, untuk mencapai rasio harga terhadap keandalan maksimum.
Gambar oleh Filomena Scalise
Tentang perangkat lunak RAID
Sesuai namanya, ini adalah setup RAID (Redundant Array of Inexpensive Disk) yang dilakukan sepenuhnya dalam perangkat lunak alih-alih menggunakan kartu perangkat keras khusus. Keuntungan utama dari hal semacam itu adalah biaya, karena kartu khusus ini merupakan premi tambahan untuk konfigurasi dasar sistem. Kerugian utama pada dasarnya adalah kinerja dan beberapa keandalan karena kartu seperti itu biasanya datang dengan RAM + CPU sendiri untuk melakukan perhitungan yang diperlukan untuk redundansi matematika, caching data untuk peningkatan kinerja, dan baterai cadangan opsional yang menjaga operasi tidak tertulis dalam cache sampai listrik telah dipulihkan jika listrik padam.
Dengan setup perangkat lunak RAID Anda mengorbankan beberapa kinerja sistem CPU untuk mengurangi total biaya sistem, namun dengan CPU saat ini overhead relatif diabaikan (terutama jika Anda akan mendedikasikan server ini terutama untuk menjadi "server file"). Sejauh kinerja disk, ada penalti ... namun saya belum pernah mengalami hambatan dari subsistem disk dari server untuk mencatat seberapa dalamnya. Panduan Perangkat Keras Tom "Tom's go RAID5" adalah sebuah artikel kuno yang cukup lengkap tentang subjek, yang secara pribadi saya gunakan sebagai referensi, namun mengambil tolok ukur dengan sebutir garam karena berbicara tentang implementasi windows dari perangkat lunak RAID (seperti halnya dengan segalanya, saya yakin Linux jauh lebih baik: P).
Prasyarat
- Sabar yang muda, ini sudah lama dibaca.
- Diasumsikan Anda tahu apa itu RAID dan untuk apa RAID itu digunakan.
- Panduan ini ditulis menggunakan Ubuntu server9.10 x64, oleh karena itu diasumsikan bahwa Anda memiliki sistem berbasis Debian untuk bekerja dengannya juga.
- Anda akan melihat saya menggunakan VIM sebagai program editor, ini hanya karena saya sudah terbiasa ... Anda dapat menggunakan editor lain yang Anda inginkan.
- Sistem Ubuntu yang saya gunakan untuk menulis panduan ini, diinstal pada disk-on-key. Melakukan hal itu memungkinkan saya untuk menggunakan sda1 sebagai bagian dari array RAID, jadi sesuaikan dengan pengaturan Anda.
- Bergantung pada jenis RAID yang ingin Anda buat, Anda akan membutuhkan setidaknya dua disk pada sistem Anda dan dalam panduan ini kami menggunakan 6 drive.
Memilih disk yang membuat array
Langkah pertama dalam menghindari jebakan adalah mengetahui keberadaannya (Thufir Hawat dari Dune).
Memilih disk adalah langkah penting yang tidak boleh dianggap remeh, dan Anda sebaiknya memanfaatkan pengalaman truly Anda dan perhatikan peringatan ini:
Melakukan TIDAK gunakan drive "tingkat konsumen" untuk membuat larik Anda, gunakan drive "tingkat server"!!!!!!
Sekarang saya tahu apa yang Anda pikirkan, bukankah kita mengatakan kita akan pergi dengan murah? dan ya kita lakukan, tetapi, ini adalah persis salah satu tempat di mana melakukan itu adalah gegabah dan harus dihindari. Terlepas dari harganya yang menarik, hard drive tingkat konsumen tidak dirancang untuk digunakan dalam jenis penggunaan 24/7. Percayalah, Anda benar-benar telah mencoba ini untuk Anda. Setidaknya empat drive tingkat konsumen di 3 server saya setup seperti ini (karena keterbatasan anggaran) gagal setelah sekitar 1,5 ~ 1,8 tahun dari hari peluncuran awal server. Meskipun tidak ada kehilangan data, karena RAID melakukan tugasnya baik dan selamat ... saat-saat seperti ini mempersingkat harapan hidup sysadmin, belum lagi down time untuk perusahaan untuk pemeliharaan server (sesuatu yang mungkin berakhir dengan biaya lebih dari drive kelas yang lebih tinggi).
Beberapa orang mungkin mengatakan bahwa tidak ada perbedaan dalam tingkat kegagalan antara kedua jenis. Itu mungkin benar, namun terlepas dari klaim-klaim ini, drive tingkat server masih memiliki tingkat pembatasan SMART yang lebih tinggi dan QAing di belakangnya (seperti yang dapat diamati oleh fakta bahwa mereka tidak dirilis ke pasar segera setelah drive konsumen), jadi saya masih sangat menyarankan Anda membayar $$$ ekstra untuk upgrade.
Memilih level RAID.
Walaupun saya tidak akan membahas semua opsi yang tersedia (ini didokumentasikan dengan sangat baik dalam entri wikipedia RAID), saya merasa perlu dicatat bahwa Anda harus selalu memilih setidaknya RAID 6 atau bahkan lebih tinggi ( kita akan gunakan Linux RAID10). Ini karena ketika disk gagal, ada kemungkinan kegagalan disk tetangga yang lebih tinggi dan Anda mengalami kegagalan "dua disk" di tangan Anda. Selain itu, jika Anda akan menggunakan drive besar, karena disk yang lebih besar memiliki kepadatan data yang lebih tinggi pada permukaan platter, kemungkinan kegagalan lebih tinggi. Disk IMHO dari 2T dan seterusnya akan selalu termasuk dalam kategori ini, jadi waspadalah.
Mari kita mulai retak
Mempartisi disk
Sementara di Linux / GNU, kita bisa menggunakan seluruh perangkat blok untuk kebutuhan penyimpanan, kita akan menggunakan partisi karena membuatnya lebih mudah untuk menggunakan alat penyelamatan disk jika sistem menjadi gila. Kami menggunakan program "fdisk" di sini, tetapi jika Anda akan menggunakan disk yang lebih besar maka 2T Anda akan perlu menggunakan program partisi yang mendukung partisi GPT seperti berpisah..
sudo fdisk / dev / sdb
Catatan: Saya telah mengamati bahwa adalah mungkin untuk membuat array tanpa mengubah tipe partisi, tetapi karena ini adalah cara yang dijelaskan di seluruh internet saya akan mengikuti (lagi ketika menggunakan seluruh perangkat blok ini tidak perlu).
Setelah di fdisk, penekanan tombolnya adalah:
n; untuk partisi baru
memasukkan
p; untuk partisi primer
memasukkan
1; jumlah partisi
masuk; terima standarnya
masuk; terima standarnya
t; untuk mengubah jenisnya
fd; menetapkan tipe menjadi “Linux raid auto detect” (83j)
w; tulis perubahan ke disk dan keluar
Bilas dan ulangi untuk semua disk yang akan menjadi bagian dari array.
Membuat array RAID10 Linux
Keuntungan menggunakan “Linux raid10 "adalah bahwa ia tahu bagaimana mengambil keuntungan dari jumlah disk yang tidak genap untuk meningkatkan kinerja dan ketahanan lebih jauh daripada vanilla RAID10, di samping fakta bahwa ketika menggunakannya array" 10 "dapat dibuat dalam satu single langkah.
Buat larik dari disk yang telah kami siapkan di langkah terakhir dengan mengeluarkan:
sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -hindari
Catatan: Ini semua hanya satu baris meskipun fakta bahwa representasi memecahnya menjadi dua.
Mari kita pisahkan parameternya:
- "-Chunk = 256" - Ukuran byte dari garis-garis raid yang rusak, dan ukuran ini direkomendasikan untuk disk baru / besar (drive 2T yang digunakan untuk membuat panduan ini tanpa keraguan dalam kategori itu).
- "-Level = 10" - Menggunakan Linux raid10 (jika raid tradisional diperlukan, untuk alasan apa pun, Anda harus membuat dua array dan bergabung dengan mereka).
- "-P f2" - Menggunakan rencana rotasi "jauh" lihat catatan di bawah untuk info lebih lanjut dan "2" memberi tahu bahwa array akan menyimpan dua salinan data..
Catatan: Kami menggunakan rencana "jauh" karena ini menyebabkan tata letak data fisik pada disk TIDAK sama. Ini membantu mengatasi situasi di mana perangkat keras salah satu drive gagal karena kesalahan produksi (dan jangan berpikir "ini tidak akan terjadi pada saya" seperti yang Anda lakukan sebenarnya). Karena kenyataan bahwa kedua disk memiliki merek dan model yang sama, telah digunakan dengan cara yang sama dan secara tradisional menjaga data di lokasi fisik yang sama ... Ada risiko bahwa drive yang memegang salinan data telah gagal terlalu atau dekat dan tidak akan memberikan ketahanan yang diperlukan sampai disk pengganti tiba. Rencana "jauh" membuat distribusi data ke lokasi fisik yang sama sekali berbeda pada drive salinan selain menggunakan disk yang tidak berdekatan satu sama lain dalam kasing komputer. Informasi lebih lanjut dapat ditemukan di sini dan di tautan di bawah ini.
Setelah array dibuat, array akan memulai proses sinkronisasi. Meskipun Anda mungkin ingin menunggu demi tradisi (karena ini mungkin memakan waktu cukup lama), Anda dapat segera mulai menggunakan array.
Kemajuan dapat diamati menggunakan:
watch -d cat / proc / mdstat
Buat File Konfigurasi mdadm.conf
Meskipun telah terbukti bahwa Ubuntu hanya tahu untuk memindai dan mengaktifkan array secara otomatis pada saat startup, demi kelengkapan dan kesopanan untuk sysadmin berikutnya kita akan membuat file. Sistem Anda tidak secara otomatis membuat file dan mencoba mengingat semua komponen / partisi dari set RAID Anda, adalah pinggang kewarasan admin sistem. Informasi ini dapat, dan harus disimpan dalam file mdadm.conf. Formatnya bisa rumit, tapi untungnya output dari perintah mdadm -detail -scan -verbose memberi Anda.
Catatan: Dikatakan bahwa: “Sebagian besar distribusi mengharapkan file mdadm.conf di / etc /, bukan / etc / mdadm. Saya percaya ini adalah "ubuntu-ism" untuk memilikinya sebagai /etc/mdadm/mdadm.conf ". Karena kenyataan bahwa kita adalah menggunakan Ubuntu di sini, kita akan ikuti saja.
sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf
PENTING! Anda perlu menghapus satu “0” dari file yang baru dibuat karena sintaks yang dihasilkan dari perintah di atas tidak sepenuhnya benar (GNU / Linux belum menjadi OS).
Jika Anda ingin melihat masalah yang disebabkan oleh konfigurasi yang salah ini, Anda dapat mengeluarkan “memindai ” perintah pada titik ini, sebelum melakukan penyesuaian:
mdadm --examine --scan
Untuk mengatasinya, edit file /etc/mdadm/mdadm.conf dan ubah:
metadata = 00,90
Untuk membaca:
metadata = 0,90
Menjalankan mdadm -examine -scan Perintah sekarang harus kembali tanpa kesalahan.
Pengaturan sistem file pada array
Saya menggunakan ext4 untuk contoh ini karena bagi saya itu hanya dibangun di atas keakraban dari filesystem ext3 yang datang sebelumnya sambil menjanjikan kinerja dan fitur yang lebih baik..
Saya sarankan meluangkan waktu untuk menyelidiki filesystem apa yang lebih baik sesuai dengan kebutuhan Anda dan awal yang baik untuk itu adalah artikel "Sistem File Linux Yang Harus Anda Pilih?".
sudo mkfs.ext4 / dev / md0
Catatan: Dalam hal ini saya tidak mempartisi array yang dihasilkan karena, saya hanya tidak membutuhkannya pada saat itu, karena pihak yang meminta secara khusus meminta setidaknya 3,5T ruang kontinu. Dengan itu, jika saya ingin membuat partisi, saya harus menggunakan utilitas yang mampu mempartisi GPT seperti "berpisah".
Pemasangan
Buat titik pemasangan:
sudo mkdir / media / raid10
Catatan: Ini bisa berupa lokasi apa pun, di atas hanya sebuah contoh.
Karena kita berurusan dengan "perangkat rakitan", kita akan melakukannya tidak gunakan UUID sistem file yang ada di perangkat untuk pemasangan (seperti yang disarankan untuk jenis perangkat lain di panduan “apa itu linux fstab dan bagaimana cara kerjanya”) karena sistem dapat melihat bagian dari sistem file pada disk individual dan mencoba untuk salah pasang langsung. untuk mengatasinya, kami ingin menunggu perangkat "dirakit" secara eksplisit sebelum mencoba memasang, dan kami akan menggunakan nama array yang dirakit ("md") di dalam fstab untuk menyelesaikan ini.
Edit file fstab:
sudo vim / etc / fstab
Dan tambahkan ke baris ini:
/ dev / md0 / media / raid10 / ext4 default 1 2
Catatan: Jika Anda mengubah lokasi pemasangan atau sistem file dari contoh, Anda harus menyesuaikan yang di atas.
Gunakan mount dengan parameter otomatis (-a) untuk mensimulasikan boot sistem, sehingga Anda tahu bahwa konfigurasi berfungsi dengan benar dan bahwa perangkat RAID akan dipasang secara otomatis ketika sistem restart:
sudo mount -a
Anda sekarang seharusnya dapat melihat array dipasang dengan perintah "mount" tanpa parameter.
Peringatan Email untuk Array RAID
Berbeda dengan array RAID perangkat keras, dengan array perangkat lunak tidak ada controller yang akan mulai berbunyi bip untuk memberi tahu Anda ketika ada masalah. Oleh karena itu peringatan Email akan menjadi satu-satunya cara kita untuk mengetahui apakah sesuatu terjadi pada satu atau lebih disk dalam array, dan dengan demikian menjadikannya sebagai langkah paling penting.
Ikuti panduan "Cara Mengatur Peringatan Email di Linux Menggunakan Gmail atau SMTP" dan ketika selesai kembali ke sini untuk melakukan langkah-langkah khusus RAID.
Konfirmasikan bahwa mdadm dapat mengirim email
Perintah di bawah ini, akan memberitahu mdadm untuk mematikan satu email saja dan tutup.
sudo mdadm --monitor --scan --test --oneshot
Jika berhasil, Anda harus mendapatkan Email, merinci kondisi array.
Atur konfigurasi mdadm untuk mengirim Email saat startup
Meskipun bukan keharusan mutlak, itu bagus untuk mendapatkan pembaruan dari waktu ke waktu dari mesin untuk memberi tahu kami bahwa kemampuan email masih berfungsi dan kondisi array. Anda mungkin tidak akan kewalahan oleh Email karena pengaturan ini hanya memengaruhi startup (yang pada server seharusnya tidak banyak).
Edit file konfigurasi mdadm:
sudo vim / etc / default / mdadm
Tambahkan -uji parameter ke DAEMON_OPTIONS bagian sehingga akan terlihat seperti:
DAEMON_OPTIONS = "- syslog --test"
Anda dapat me-restart mesin hanya untuk memastikan "in the loop" Anda tetapi itu bukan keharusan.
Konfigurasi Samba
Menginstal SaMBa di server Linux memungkinkannya untuk bertindak seperti server file windows. Jadi untuk mendapatkan data yang kami hosting di server Linux yang tersedia untuk klien windows, kami akan menginstal dan mengkonfigurasi SaMBa.
Lucu untuk dicatat bahwa nama paket SaMBa adalah permainan kata-kata pada protokol Microsoft yang digunakan untuk berbagi file yang disebut SMB (Service Message Block).
Dalam panduan ini server digunakan untuk tujuan pengujian, jadi kami akan memungkinkan akses ke bagiannya tanpa membutuhkan kata sandi, Anda mungkin ingin menggali lebih dalam tentang cara mengatur izin setelah pengaturan selesai.
Juga disarankan agar Anda membuat pengguna yang tidak memiliki hak istimewa untuk menjadi pemilik file. Dalam contoh ini kita menggunakan pengguna "geek" yang telah kita buat untuk tugas ini. Penjelasan tentang cara membuat pengguna dan mengelola kepemilikan dan izin dapat ditemukan di "Buat Pengguna Baru di Ubuntu Server 9.10" dan "Panduan Pemula untuk Mengelola Pengguna dan Grup di Linux".
Instal Samba:
aptitude install samba
Edit file konfigurasi samba:
sudo vim /etc/samba/smb.conf
Tambahkan bagian yang disebut "umum" yang akan memberikan akses ke titik mount "/ media / raid10 / general" dengan menambahkan di bawah ini ke file.
[umum]
path = / media / raid10 / general
memaksa pengguna = geek
kelompok kekuatan = geek
baca saja = Tidak
buat topeng = 0777
masker direktori = 0777
guest only = Ya
tamu baik-baik saja = Ya
Pengaturan di atas membuat share dapat dialamatkan tanpa kata sandi kepada siapa pun dan menjadikan pemilik default dari file tersebut sebagai “geek” pengguna.
Untuk referensi Anda, file smb.conf ini diambil dari server yang berfungsi.
Mulai ulang layanan samba agar pengaturan diterapkan:
sudo /etc/init.d/samba restart
Setelah selesai Anda dapat menggunakan testparm perintah untuk melihat pengaturan yang diterapkan ke server samba.
itu saja, server seharusnya sekarang, dapat diakses dari kotak windows apa saja menggunakan:
\ server-namegeneral
Penyelesaian masalah
Ketika Anda perlu memecahkan masalah atau disk gagal dalam sebuah array, saya sarankan merujuk pada lembar contekan mdadm (itulah yang saya lakukan ...).
Secara umum Anda harus ingat bahwa ketika disk gagal Anda harus "menghapus" dari array, matikan mesin, ganti drive yang gagal dengan pengganti dan kemudian "tambahkan" drive baru ke array setelah Anda membuat disk yang sesuai tata letak (partisi) di atasnya jika perlu.
Setelah selesai, Anda mungkin ingin memastikan bahwa array sedang dibangun kembali dan perhatikan perkembangannya dengan:
watch -d cat / proc / mdstat
Semoga berhasil! :)
Referensi:
lembar contekan mdadm
Level RAID memecah
RAID10 Linux menjelaskan
Halaman manual perintah mdadm
halaman manual file konfigurasi mdadm
Batasan partisi dijelaskan
Menggunakan perangkat lunak RAID tidak akan memakan biaya banyak ... Hanya SUARA Anda ;-)