Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah pada Ubuntu
Adakah anda memerlukan pelayan fail pada murah yang mudah untuk persediaan, "solid rock" boleh dipercayai dengan E-mel Alerting? akan menunjukkan kepada anda cara menggunakan Ubuntu, perisian RAID dan SaMBa untuk menyelesaikannya.
Gambaran keseluruhan
Walaupun buzz terkini untuk memindahkan segala sesuatu kepada awan "semua yang kuat", kadangkala anda mungkin tidak menginginkan maklumat anda di pelayan orang lain atau mungkin tidak dapat memuat turun jumlah data yang anda perlukan dari internet setiap kali (contohnya penggunaan imej ). Jadi sebelum anda membersihkan tempat dalam anggaran anda untuk penyelesaian penyimpanan, pertimbangkan konfigurasi yang dilisensikan dengan Linux percuma.
Dengan kata itu, pergi murah / percuma tidak bermakna "melemparkan dengan berhati-hati kepada angin", dan untuk itu, kita akan perhatikan mata untuk mengetahui, konfigurasi yang perlu ditetapkan di samping menggunakan perisian RAID, untuk mencapai harga maksimum kepada nisbah kebolehpercayaan.
Imej oleh Filomena Scalise
Mengenai perisian RAID
Seperti namanya, ini adalah persediaan RAID (Array Redundant Array of Inexpensive) yang dilakukan sepenuhnya dalam perisian dan bukan menggunakan kad perkakasan khusus. Kelebihan utama perkara seperti ini adalah kos, kerana kad khusus ini merupakan premium tambahan kepada konfigurasi asas sistem. Keburukan utama pada dasarnya adalah prestasi dan kebolehpercayaan kad seperti kad biasanya datang dengan RAM + CPU sendiri untuk melakukan pengiraan yang diperlukan untuk matematik redundansi, caching data untuk peningkatan prestasi, dan bateri sandaran pilihan yang menyimpan operasi yang tidak bertulis dalam cache sehingga kuasa telah dipulihkan dalam kes kuasa keluar.
Dengan persediaan RAID perisian anda mengorbankan beberapa sistem prestasi CPU untuk mengurangkan jumlah kos sistem, namun dengan CPU hari ini, overhead agak tidak dapat dielakkan (terutama jika anda akan mendedikasikan pelayan ini sebagai "pelayan fail"). Setakat prestasi cakera pergi, terdapat penalti ... namun saya tidak pernah mengalami kemacetan dari subsistem cakera dari pelayan untuk melihat betapa mendalamnya. Panduan Perkakasan Tom "Tom's goes RAID5" adalah seorang tua tapi artikel lengkap yang baik tentang subjek, yang saya gunakan sebagai rujukan, namun mengambil tanda aras dengan sebutir garam seperti yang dibicarakan tentang pelaksanaan windows software RAID (seperti segala-galanya, saya pasti Linux lebih baik: P).
Prasyarat
- Kesabaran yang muda, inilah bacaan yang panjang.
- Dianggap anda tahu apa RAID dan apa yang digunakan untuknya.
- Panduan ini ditulis menggunakan pelayan Ubuntu9.10 x64, oleh itu, anda menganggap bahawa anda mempunyai sistem berasaskan Debian untuk berfungsi dengan baik.
- Anda akan melihat saya menggunakan VIM sebagai program editor, ini hanya kerana saya digunakan untuk itu ... anda boleh menggunakan editor lain yang anda suka.
- Sistem Ubuntu saya gunakan untuk menulis panduan ini, dipasang pada cakera padam. Melakukannya membolehkan saya menggunakan sda1 sebagai sebahagian daripada array RAID, jadi laraskan sesuai dengan persediaan anda.
- Bergantung pada jenis RAID yang anda ingin buat, anda memerlukan sekurang-kurangnya dua cakera pada sistem anda dan dalam panduan ini kami menggunakan 6 pemacu.
Memilih cakera yang membuat array
Langkah pertama dalam mengelakkan perangkap adalah mengetahui kewujudannya (Thufir Hawat dari Dune).
Memilih cakera adalah satu langkah penting yang tidak sepatutnya diambil ringan, dan anda akan bijak untuk memanfaatkan pengalaman anda yang sebenar dan mematuhi amaran ini:
Lakukan TIDAK gunakan pemacu "gred pengguna" untuk membuat array anda, gunakan pemacu "gred pelayan"!!!!!!
Sekarang saya tahu apa pemikiran anda, tidakkah kita katakan kita akan pergi murah? dan ya kita lakukan, tetapi, ini betul-betul salah satu tempat di mana berbuat demikian adalah melulu dan harus dielakkan. Walaupun harga menarik mereka, pemacu keras gred pengguna tidak direka untuk digunakan dalam jenis "24/7" pada penggunaan. Percayalah, anda telah mencuba ini untuk anda. Sekurang-kurangnya empat pemacu gred pengguna di 3 pelayan yang saya tetapkan seperti ini (disebabkan kekangan anggaran) gagal selepas kira-kira 1.5 ~ 1.8 tahun dari hari pelancaran awal pelayan. Walaupun tidak ada kehilangan data, kerana RAID melakukan tugasnya baik dan selamat ... momen seperti ini memendekkan jangka hayat sysadmin, tidak menyebutkan masa untuk syarikat untuk penyelenggaraan pelayan (sesuatu yang mungkin berakhir dengan biaya lebih banyak pemacu gred tinggi).
Ada yang mengatakan bahawa tidak ada perbezaan kadar gagal antara kedua-dua jenis. Ini mungkin benar, walaupun walaupun tuntutan ini, pemacu gred pelayan masih mempunyai tahap sekatan SMART yang lebih tinggi dan QAing di belakangnya (seperti yang dapat dilihat oleh fakta bahawa mereka tidak dilepaskan ke pasaran sebaik sahaja pemacu pengguna), jadi saya masih sangat mengesyorkan bahawa anda mengeluarkan tambahan $ $ $ untuk peningkatan.
Memilih tahap RAID.
Walaupun saya tidak akan pergi ke semua pilihan yang tersedia (ini didokumenkan dengan baik dalam entri wikipedia RAID), saya rasa bahawa perlu diperhatikan bahawa anda harus memilih sekurang-kurangnya RAID 6 atau lebih tinggi ( kami akan menggunakannya Linux RAID10). Ini kerana apabila cakera gagal, terdapat peluang yang lebih tinggi untuk kegagalan cakera jiran dan kemudian anda mempunyai kegagalan "dua disk" di tangan anda. Lebih-lebih lagi, jika anda akan menggunakan pemacu besar, kerana cakera yang lebih besar mempunyai ketumpatan data yang lebih tinggi di permukaan platter, kemungkinan kegagalan adalah lebih tinggi. IMHO cakera dari 2T dan seterusnya akan sentiasa jatuh ke dalam kategori ini, jadi sedarlah.
Mari kita retak
Pemisahan cakera
Semasa di Linux / GNU, kita boleh menggunakan seluruh peranti blok untuk keperluan storan, kita akan menggunakan sekat-sekat kerana ia memudahkan untuk menggunakan alat-alat penyelamatan cakera sekiranya sistem itu telah menjadi penipu. Kami menggunakan program "fdisk" di sini, tetapi jika anda akan menggunakan cakera yang lebih besar maka 2T anda akan perlu menggunakan program pembahagian yang menyokong pemisahan GPT seperti berpisah.
sudo fdisk / dev / sdb
Catatan: Saya telah mengamati bahawa mungkin untuk membuat array tanpa mengubah jenis partition, tetapi kerana ini adalah cara yang dijelaskan di seluruh jaring yang akan saya ikuti (sekali lagi apabila menggunakan seluruh peranti blok ini tidak perlu).
Sekali dalam fdisk ketukan kekunci adalah:
n; untuk partition baru
masukkan
p; untuk partition utama
masukkan
1; bilangan partition
masukkan; terima lalai
masukkan; terima lalai
t; untuk menukar jenis
fd; menetapkan jenis untuk menjadi "pengesanan automatik serbuan Linux" (83h)
w; tulis perubahan pada cakera dan keluar
Bilas dan ulangi semua cakera yang akan menjadi sebahagian daripada array.
Mewujudkan array RAID10 Linux
Kelebihan menggunakan "Linux raid10 "adalah bahawa ia tahu bagaimana untuk memanfaatkan bilangan bukan cakera untuk meningkatkan prestasi dan daya tahan lebih jauh lagi RAID10 vanili, sebagai tambahan kepada hakikat bahawa apabila menggunakannya" 10 "array boleh dibuat dalam satu tunggal langkah.
Buat array dari cakera yang telah kami sediakan dalam langkah terakhir dengan mengeluarkan:
dev / sda1 / dev / sdb1 / dev / sd1 / dev / -benarose
Catatan: Ini semua hanya satu baris walaupun kenyataan itu memecahkannya kepada dua.
Mari pecahkan parameter ke bawah:
- "-Chunk = 256" - Saiz byte jalur serbuan rusak, dan saiz ini disyorkan untuk cakera baru / besar (pemacu 2T yang digunakan untuk membuat panduan ini tanpa keraguan dalam kategori itu).
- "-Level = 10" - Menggunakan Linux raid10 (jika serbuan tradisional diperlukan, untuk apa sebabnya, anda perlu membuat dua array dan bergabung dengan mereka).
- "-P f2" - Menggunakan pelan putaran "jauh" lihat nota di bawah untuk maklumat lanjut dan "2" memberitahu bahawa array akan menyimpan dua salinan data.
Catatan: Kami menggunakan pelan "jauh" kerana ini menyebabkan susunan data fizikal pada cakera TIDAK sama. Ini membantu mengatasi keadaan di mana perkakasan salah satu pemacu gagal kerana kesalahan pembuatan (dan tidak berfikir "ini tidak akan berlaku kepada saya" seperti yang anda lakukan). Disebabkan fakta bahawa kedua-dua cakera itu adalah pembuatan dan model yang sama, telah digunakan dalam fesyen yang sama dan secara tradisinya telah menjaga data di lokasi fizikal yang sama ... Risiko wujud bahawa pemacu yang memegang salinan data telah gagal terlalu atau hampir dan tidak akan memberikan daya tahan yang diperlukan sehinggalah cakera pengganti tiba. Pelan "jauh" menjadikan pengedaran data ke lokasi fizikal yang sama sekali berbeza pada pemacu salinan selain menggunakan cakera yang tidak dekat antara satu sama lain dalam kes komputer. Maklumat lanjut boleh didapati di sini dan dalam pautan di bawah.
Setelah array dibuat, ia akan memulakan proses penyegerakannya. Walaupun anda mungkin ingin menunggu untuk tradisi '(kerana ini mungkin mengambil sedikit masa), anda boleh mula menggunakan array dengan segera.
Kemajuan boleh dilihat dengan menggunakan:
menonton -d kucing / proc / mdstat
Buat Fail Konfigurasi mdadm.conf
Walaupun telah terbukti bahawa Ubuntu hanya tahu untuk mengimbas dan mengaktifkan array secara automatik pada permulaan, untuk kesempurnaan demi dan kesopanan untuk sysadmin seterusnya kita akan membuat fail. Sistem anda tidak membuat fail secara automatik dan cuba mengingati semua komponen / sekatan set RAID anda, adalah pinggang kewarasan admin sistem. Maklumat ini boleh, dan harus disimpan dalam fail mdadm.conf. Pemformatan boleh menjadi rumit, tapi mujurlah output arahan mdadm -detail -scan -verbose menyediakan anda dengannya.
Catatan: Telah dikatakan bahawa: "Kebanyakan pengedaran menjangkakan fail mdadm.conf di / etc /, bukan / etc / mdadm. Saya percaya ini adalah "ubuntu-ism" untuk memilikinya sebagai /etc/mdadm/mdadm.conf ". Kerana kenyataan bahawa kita adalah menggunakan Ubuntu di sini, kami akan pergi bersamanya.
sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf
PENTING! anda perlu mengeluarkan satu "0" dari fail yang baru dibuat kerana sintaks yang dihasilkan dari arahan di atas tidak benar sepenuhnya (GNU / Linux bukan OS lagi).
Jika anda ingin melihat masalah yang menyebabkan konfigurasi yang salah ini, anda boleh mengeluarkan "imbas" arahan pada ketika ini, sebelum membuat penyelarasan:
mdadm --examine --scan
Untuk mengatasinya, edit fail tersebut /etc/mdadm/mdadm.conf dan perubahan:
metadata = 00.90
Untuk membaca:
metadata = 0.90
Running the mdadm -examine -scan arahan sekarang harus kembali tanpa kesilapan.
Persediaan filesystem pada array
Saya menggunakan ext4 untuk contoh ini kerana untuk saya ia hanya dibina atas kebiasaan sistem fail ext3 yang datang sebelum itu sambil menyediakan prestasi dan ciri yang lebih baik.
Saya cadangkan meluangkan masa untuk menyiasat sistem fail yang lebih sesuai dengan keperluan anda dan permulaan yang baik untuk itu adalah "Sistem File Linux Yang Harus Anda Pilih?".
sudo mkfs.ext4 / dev / md0
Catatan: Dalam kes ini saya tidak memisahkan array yang terhasil kerana, saya tidak memerlukannya pada masa itu, kerana pihak pemohon secara khusus meminta sekurang-kurangnya 3.5T ruang yang berterusan. Dengan itu berkata, adakah saya mahu membuat partisyen, saya terpaksa menggunakan utiliti berkemampuan GPT seperti "berpisah".
Pemasangan
Buat titik gunung:
sudo mkdir / media / raid10
Catatan: Ini boleh menjadi sebarang lokasi, contohnya di atas adalah contoh sahaja.
Kerana kita berhadapan dengan "peranti dipasang" kita akan tidak gunakan UUID sistem fail yang ada pada peranti untuk pemasangan (seperti disyorkan untuk jenis peranti lain di "apa yang linux fstab dan bagaimana ia berfungsi" panduan) kerana sistem sebenarnya mungkin melihat sebahagian daripada sistem fail pada cakera individu dan mencuba untuk tidak betul lekapkan secara terus. untuk mengatasi ini, kami ingin secara eksplisit menunggu peranti itu "dikumpulkan" sebelum kita mencuba pemasangannya, dan kami akan menggunakan nama array yang dipasang ("md") dalam fstab untuk mencapai matlamat ini.
Edit fail fstab:
sudo vim / etc / fstab
Dan tambah kepadanya baris ini:
/ dev / md0 / media / raid10 / ext4 lalai 1 2
Catatan: Jika anda menukar lokasi gunung atau sistem fail daripada contoh, anda perlu menyesuaikan di atas dengan sewajarnya.
Gunakan gunung dengan parameter automatik (-a) untuk mensimulasikan boot sistem, supaya anda tahu bahawa konfigurasi berfungsi dengan betul dan peranti RAID akan dipasang secara automatik apabila sistem dimulakan semula:
sudo mount -a
Anda kini dapat melihat array yang dipasang dengan perintah "mount" tanpa parameter.
Makluman E-mel untuk RAID Array
Tidak seperti susunan RAID perkakasan, dengan pelbagai perisian tiada pengawal yang akan mula bersuara untuk memberitahu anda apabila ada yang salah. Oleh itu, makluman E-mel akan menjadi satu-satunya cara kita untuk mengetahui jika sesuatu berlaku kepada satu atau lebih cakera dalam array, dan dengan itu menjadikannya langkah yang paling penting.
Ikuti "Cara Menyediakan Isu E-mel pada Linux Menggunakan Gmail atau SMTP" dan apabila selesai kembali ke sini untuk melaksanakan langkah-langkah khusus RAID.
Sahkan bahawa mdadm boleh E-mel
Perintah di bawah, akan memberitahu mdadm untuk memadam hanya satu e-mel dan tutup.
sudo mdadm --monitor --scan --test --oneshot
Jika berjaya, anda perlu mendapatkan E-mel, memperincikan keadaan array.
Tetapkan konfigurasi mdadm untuk menghantar e-mel pada permulaan
Walaupun tidak harus mutlak, adalah baik untuk mendapatkan kemas kini dari semasa ke semasa dari mesin untuk memberitahu kami bahawa keupayaan e-mel masih berfungsi dan keadaan array itu. anda mungkin tidak akan dibanjiri oleh E-mel kerana tetapan ini hanya memberi kesan kepada pemula (yang pada pelayan tidak boleh banyak).
Edit fail konfigurasi mdadm:
sudo vim / etc / default / mdadm
Tambah -ujian parameter kepada DAEMON_OPTIONS seksyen supaya ia kelihatan seperti:
DAEMON_OPTIONS = "- syslog --test"
Anda boleh memulakan semula mesin untuk memastikan "dalam gelung" anda tetapi ia tidak perlu.
Konfigurasi Samba
Memasang SaMBa pada pelayan Linux membolehkannya bertindak seperti pelayan fail windows. Oleh itu untuk mendapatkan data yang kami hoskan pada pelayan Linux yang tersedia untuk pelanggan tingkap, kami akan memasang dan mengkonfigurasi SaMBa.
Sukar untuk diperhatikan bahawa nama pakej SaMBa adalah pun pada protokol Microsoft yang digunakan untuk perkongsian fail yang dipanggil SMB (Blok Mesej Perkhidmatan).
Dalam panduan ini pelayan digunakan untuk tujuan ujian, jadi kami akan membolehkan akses ke bahagiannya tanpa memerlukan kata laluan, anda mungkin ingin menggali sedikit lagi ke cara membuat persetujuan apabila persediaan selesai.
Juga disarankan agar anda mencipta pengguna yang tidak istimewa untuk menjadi pemilik fail. Dalam contoh ini, kami menggunakan pengguna "geek" yang kami buat untuk tugas ini. Penjelasan tentang cara membuat pengguna dan mengurus pemilikan dan kebenaran boleh didapati di "Buat Pengguna Baru di Ubuntu Server 9.10" dan "Panduan Permulaan untuk Menguruskan Pengguna dan Kumpulan di Linux" kami.
Pasang Samba:
aptitude install samba
Edit fail konfigurasi samba:
sudo vim /etc/samba/smb.conf
Tambah bahagian yang dipanggil "umum" yang akan memberikan akses kepada titik gunung "/ media / raid10 / umum" dengan menambahkan di bawah ke fail.
[umum]
path = / media / raid10 / umum
memaksa pengguna = geek
kumpulan kuasa = geek
baca sahaja = Tidak
buat topeng = 0777
topeng direktori = 0777
tetamu sahaja = Ya
tetamu ok = ya
Tetapan di atas menjadikan bahagian ini dapat ditangani tanpa kata laluan kepada sesiapa sahaja dan menjadikan pemilik default fail pengguna "geek".
Untuk rujukan anda, fail smb.conf ini diambil dari pelayan kerja.
Mulakan semula perkhidmatan samba untuk tetapan yang memberi kesan:
sudo /etc/init.d/samba restart
Setelah selesai, anda boleh menggunakannya testparm arahan untuk melihat tetapan yang digunakan untuk pelayan samba.
itu sahaja, pelayan kini boleh, boleh diakses dari mana-mana kotak windows menggunakan:
\ server-namegeneral
Penyelesaian masalah
Apabila anda perlu menyelesaikan masalah atau cakera telah gagal dalam array, saya mencadangkan merujuk kepada lembaran cheat mdadm (itulah yang saya lakukan ...).
Secara umum anda harus ingat bahawa apabila cakera gagal, anda perlu "mengeluarkan" dari array, mematikan mesin, ganti drive gagal dengan penggantian dan kemudian "tambah" pemacu baru ke array selepas anda telah membuat cakera yang sesuai susun atur (sekatan) jika diperlukan.
Sebaik sahaja itu selesai, anda mungkin ingin memastikan bahawa array sedang membina semula dan melihat kemajuan dengan:
menonton -d kucing / proc / mdstat
Semoga berjaya! :)
Rujukan:
lembaran cheat mdadm
Tahap RAID dipecahkan
Linux RAID10 dijelaskan
mdadm command man page
halaman lelaki fail konfigurasi mdadm
Had pembahagian menjelaskan
Menggunakan perisian RAID tidak akan membebankan banyak ... Hanya VOICE anda ;-)