Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah di Ubuntu

Isi kandungan:

Video: Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah di Ubuntu

Video: Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah di Ubuntu
Video: Jump Over Gaps Without Mods 2024, Mac
Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah di Ubuntu
Bagaimana Menyediakan RAID Perisian untuk Pelayan Fail Mudah di Ubuntu
Anonim
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.
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 baru-baru ini untuk memindahkan segala sesuatu kepada awan "semua kuat", kadang-kadang 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 ). Oleh itu sebelum anda membersihkan tempat dalam anggaran anda untuk penyelesaian penyimpanan, pertimbangkan konfigurasi yang dilisensikan dengan Linux percuma.

Dengan kata itu, pergi murah / percuma tidak bermaksud "membuang-buang perhatian 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 bukannya menggunakan kad perkakasan berdedikasi. Kelebihan utama perkara tersebut 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 sekiranya kuasa keluar.

Dengan persediaan RAID perisian anda mengorbankan beberapa sistem prestasi CPU untuk mengurangkan jumlah biaya sistem, namun dengan CPU saat ini, overhead relatif dapat diabaikan (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 mencatat betapa mendalamnya. Pedoman Perkakasan Tom "Tom's goes RAID5" adalah oldie tetapi artikel lengkap yang baik tentang subjek, yang saya gunakan sebagai rujukan, namun mengambil tanda aras dengan sebutir garam kerana ia membicarakan pelaksanaan windows software RAID (seperti segala-galanya, saya yakin 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 dengan menggunakan pelayan Ubuntu9.10 x64, oleh itu, ia diandaikan 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 yang saya gunakan untuk menulis panduan ini telah 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 perlu diambil ringan, dan anda akan bijak untuk mengambil kesempatan daripada pengalaman anda yang sebenarnya dan mengingati amaran ini:

Lakukan TIDAK gunakan pemacu "gred pengguna" untuk membuat array anda, gunakan pemacu "gred pelayan" !!!!!!

Sekarang saya tahu apa pemikiran anda, bukankah kita katakan kita akan pergi dengan murah? dan ya kita lakukan, tetapi, ini adalah salah satu tempat di mana melakukan itu 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 tugas itu baiklah dan selamat … saat ini seperti mempersingkat jangka hayat sysadmin, belum lagi waktu untuk syarikat untuk penyelenggaraan pelayan (sesuatu yang mungkin berakhir dengan biaya lebih tinggi dari pemacu gred tinggi).

Sesetengah mungkin mengatakan bahawa tidak ada perbezaan kadar gagal antara kedua-dua jenis. Itu 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 masuk ke semua pilihan yang tersedia (ini didokumenkan dengan baik dalam entri wikipedia RAID), saya rasa 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 dari 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 kepadatan data yang lebih tinggi di permukaan platter, kemungkinan kegagalan 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 telah menjadi penipu. Kami menggunakan program "fdisk" di sini, tetapi jika anda akan menggunakan cakera yang lebih besar maka 2T anda perlu menggunakan program pembahagian yang menyokong partitioning GPT seperti berpisah.

sudo fdisk /dev/sdb

Catatan: Saya telah melihat bahawa mungkin untuk membuat array tanpa mengubah jenis partition, tetapi kerana ini adalah cara yang digambarkan di seluruh jaring yang akan saya ikuti (sekali lagi apabila menggunakan seluruh peranti blok ini tidak diperlukan).

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 pelbagai 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 fakta bahawa apabila menggunakannya array" 10 "boleh dibuat dalam satu tunggal langkah.

Buat array dari cakera yang telah kami sediakan dalam 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 --verbose

Catatan: Ini hanya satu baris walaupun kenyataan itu memecahkannya kepada dua.

Mari pecahkan parameter ke bawah:

  • "-Chunk = 256" - Saiz byte jalur serbuan rosak, dan saiz ini disyorkan untuk cakera baru / besar (pemacu 2T yang digunakan untuk membuat panduan ini tidak diragui dalam kategori itu).
  • "-Level = 10" - Menggunakan Linux raid10 (jika serbuan tradisional diperlukan, untuk apa sebabnya, anda perlu membuat dua baris dan menyertai 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 disebabkan kesalahan pembuatan (dan tidak berfikir "ini tidak akan berlaku kepada saya" seperti yang anda lakukan). Disebabkan fakta bahawa kedua-dua cakera adalah pembuatan dan model yang sama, telah digunakan dalam cara yang sama dan secara tradisinya telah menyimpan data pada 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 sehingga disk 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 masa yang lama), anda boleh mula menggunakan array dengan segera.

Kemajuan boleh dilihat dengan menggunakan:

watch -d cat /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 secara automatik membuat fail 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 perintah 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 dikembalikan tanpa ralat.

Persediaan filesystem pada array

Saya menggunakan ext4 untuk contoh ini kerana bagi saya ia hanya dibina atas kebiasaan sistem fail ext3 yang datang sebelum itu sambil menyediakan prestasi dan ciri yang dijanjikan yang lebih baik. Saya cadangkan meluangkan masa untuk menyiasat sistem fail yang lebih sesuai dengan keperluan anda dan permulaan yang baik untuk itu adalah artikel "Sistem Fail Linux Yang Harus Anda Pilih?".

sudo mkfs.ext4 /dev/md0

Catatan: Dalam kes ini saya tidak memisahkan array yang dihasilkan kerana, saya tidak memerlukannya pada masa itu, kerana pihak pemohon secara khusus meminta sekurang-kurangnya 3.5T ruang yang berterusan. Dengan itu, saya mahu membuat sekatan, 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 hanyalah satu contoh.

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, kita ingin secara eksplisit menunggu peranti itu "dikumpulkan" sebelum kita mencuba pemasangannya, dan kita 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 defaults 1 2

Catatan: Jika anda menukar lokasi gunung atau sistem fail daripada contoh, anda perlu menyesuaikan perkara di atas dengan sewajarnya.

Guna lekap 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 Arahan RAID

Tidak seperti susunan RAID perkakasan, dengan pelbagai perisian tiada pengawal yang akan mula bersuara untuk memberitahu anda apabila ada masalah. 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 ini, akan memberitahu mdadm untuk memadamkan 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 dibebani 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 -Test parameter kepada DAEMON_OPTIONS seksyen supaya ia kelihatan seperti:

DAEMON_OPTIONS='--syslog --test'

Anda boleh memulakan semula mesin itu untuk memastikan "dalam gelung" anda tetapi ia tidak perlu.

Konfigurasi Samba

Memasang SaMBa pada pelayan Linux membolehkannya bertindak seperti pelayan fail windows. Jadi 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 lebih ke dalam cara persediaan persediaan sebaik penyiapan 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 menguruskan pemilikan dan kebenaran boleh didapati di "Buat Pengguna Baru di Ubuntu Server 9.10" dan panduan "Pemula untuk Mengurus 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.

[general] path = /media/raid10/general force user = geek force group = geek read only = No create mask = 0777 directory mask = 0777 guest only = Yes guest ok = Yes

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 menggunakan testparm arahan untuk melihat tetapan yang digunakan untuk pelayan samba. itu sahaja, pelayan kini seharusnya, dapat 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 "membuang "nya dari array, shutdown mesin, ganti drive yang gagal dengan penggantian dan kemudian" tambah "pemacu baru pada array setelah anda membuat cakera yang sesuai susun atur (sekatan) jika diperlukan.

Sebaik sahaja itu selesai, anda mungkin mahu memastikan bahawa array sedang membina semula dan menonton kemajuan dengan:

watch -d cat /proc/mdstat

Semoga berjaya!:)

Rujukan: lembaran cheat mdadm Tahap RAID dipecahkan Linux RAID10 dijelaskan mdadm command man page halaman lelaki fail konfigurasi mdadm Batasan pemisahan dijelaskan

Menggunakan perisian RAID tidak akan banyak … Hanya VOICE anda;-)

Disyorkan: