If-Koubou

Cara Setup Software RAID untuk Server File Sederhana di Ubuntu

Cara Setup Software RAID untuk Server File Sederhana di Ubuntu (Bagaimana caranya)

Apakah Anda memerlukan file server dengan harga murah yang mudah diatur, "rock solid" dapat diandalkan dengan Email Alerting? akan menunjukkan kepada Anda bagaimana menggunakan Ubuntu, perangkat lunak RAID dan SaMBa untuk mencapai hal itu.

Ikhtisar

Meskipun buzz baru-baru ini untuk memindahkan segalanya ke awan “serba hebat”, terkadang Anda mungkin tidak menginginkan informasi Anda di server orang lain atau mungkin tidak dapat mengunduh volume data yang Anda butuhkan dari internet setiap waktu (misalnya, penggunaan gambar ). Jadi sebelum Anda membersihkan tempat di anggaran Anda untuk solusi penyimpanan, pertimbangkan konfigurasi yang bebas lisensi dengan Linux.

Dengan demikian, menjadi murah / gratis tidak berarti "membuang hati-hati terhadap angin", dan untuk itu, kami akan mencatat poin yang harus diperhatikan, konfigurasi yang harus ditetapkan di tempat selain menggunakan perangkat lunak RAID, untuk mencapai harga maksimum untuk rasio keandalan.

Gambar oleh Filomena Scalise

Tentang perangkat lunak RAID

Seperti namanya, ini adalah RAID (Redundant Array of Inexpensive Disk) setup yang dilakukan sepenuhnya dalam perangkat lunak daripada menggunakan kartu hardware khusus. Keuntungan utama dari hal semacam itu adalah biaya, karena kartu khusus ini merupakan tambahan premium untuk konfigurasi dasar sistem. Kerugian utama pada dasarnya adalah kinerja dan beberapa keandalan seperti kartu yang biasanya datang dengan itu sendiri RAM + CPU untuk melakukan perhitungan yang diperlukan untuk matematika redundansi, caching data untuk peningkatan kinerja, dan baterai cadangan opsional yang membuat operasi tidak tertulis dalam cache sampai daya telah dipulihkan jika ada pemadaman listrik.

Dengan perangkat lunak RAID setup Anda mengorbankan beberapa kinerja sistem CPU untuk mengurangi total biaya sistem, namun dengan CPU todays biaya overhead relatif dapat diabaikan (terutama jika Anda akan terutama mendedikasikan server ini menjadi "file server"). Sejauh kinerja disk pergi, ada penalti ... namun saya belum pernah menemui hambatan dari subsistem disk dari server untuk mencatat seberapa besar itu. Panduan Perangkat Keras Tom "Tom's goes RAID5" adalah sebuah oldie tapi artikel lengkap tentang subjek, yang saya pribadi gunakan sebagai referensi, namun mengambil tolok ukur dengan butiran garam seperti yang berbicara tentang windows implementasi perangkat lunak RAID (seperti dengan yang lainnya, saya yakin Linux jauh lebih baik: P).

Prasyarat

  • Sabar muda, ini sudah lama dibaca.
  • Diasumsikan Anda tahu apa RAID dan apa yang digunakan untuk itu.
  • Panduan ini ditulis menggunakan server Ubuntu.9.10 x64, oleh karena itu diasumsikan bahwa Anda memiliki sistem berbasis Debian untuk bekerja dengan 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, telah diinstal pada disk-on-key. Melakukannya memungkinkan saya untuk menggunakan sda1 sebagai bagian dari larik RAID, jadi sesuaikan sesuai dengan pengaturan Anda.
  • Tergantung pada jenis RAID yang ingin Anda ciptakan, 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 merupakan langkah penting yang tidak boleh dianggap enteng, dan Anda akan bijaksana untuk memanfaatkan pengalaman kebenaran Anda dan memperhatikan peringatan ini:

Melakukan TIDAK gunakan drive “kelas konsumen” untuk membuat array Anda, gunakan drive “server grade” !!!!!!

Sekarang saya tahu apa pemikiran Anda, bukankah kita mengatakan kita akan pergi dengan murah? dan ya kami melakukannya, tetapi, ini adalah salah satu tempat di mana melakukan hal itu adalah sembrono dan harus dihindari. Terlepas dari harga menarik mereka, hard drive kelas konsumen tidak dirancang untuk digunakan dalam jenis penggunaan “on” 24/7. Percayalah, Anda benar-benar telah mencoba ini untuk Anda. Setidaknya empat drive kelas konsumen di 3 server yang saya atur seperti ini (karena keterbatasan anggaran) gagal setelah sekitar 1,5 ~ 1,8 tahun sejak hari peluncuran awal server. Meskipun tidak ada data yang hilang, karena RAID melakukan tugasnya baik dan selamat ... saat-saat seperti ini memperpendek harapan hidup sysadmin, belum lagi downtime bagi 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 ini, drive kelas server masih memiliki tingkat pembatasan SMART dan QAing yang lebih tinggi di belakang mereka (sebagaimana dapat diamati oleh fakta bahwa mereka tidak dirilis ke pasar segera setelah drive konsumen), jadi saya masih sangat menyarankan Anda membayar ekstra $$$ untuk peningkatan.

Memilih tingkat RAID.

Sementara saya tidak akan masuk ke semua opsi yang tersedia (ini didokumentasikan dengan sangat baik dalam entri wikipedia RAID), saya merasa bahwa perlu dicatat bahwa Anda harus selalu memilih setidaknya RAID 6 atau bahkan lebih tinggi ( kami akan menggunakan Linux RAID10). Ini karena ketika disk gagal, ada kemungkinan yang lebih tinggi dari kegagalan disk tetangga dan kemudian Anda memiliki kegagalan "dua disk" di tangan Anda. Selain itu, jika Anda akan menggunakan drive besar, karena disk yang lebih besar memiliki kerapatan data yang lebih tinggi di permukaan platter, peluang untuk kegagalan lebih tinggi. IMHO disk dari 2T dan seterusnya akan selalu masuk dalam kategori ini, jadi berhati-hatilah.

Ayo kita pecah

Mempartisi disk

Sementara di Linux / GNU, kita bisa menggunakan seluruh perangkat blok untuk kebutuhan penyimpanan, kita akan menggunakan partisi karena itu lebih mudah untuk menggunakan alat penyelamatan disk jika sistem sudah 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 net saya akan mengikuti (lagi ketika menggunakan seluruh perangkat blok ini tidak perlu).

Setelah di fdisk penekanan tombol adalah:

n; untuk partisi baru
memasukkan
p; untuk partisi utama
memasukkan
1; jumlah partisi
masukkan; terima default
masukkan; terima default
t; untuk mengubah jenisnya
fd; set tipe yang akan "Linux raid auto detect" (83h)
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 memanfaatkan sejumlah non-gen dari disk untuk meningkatkan kinerja dan ketahanan bahkan lebih jauh kemudian vanilla RAID10, di samping fakta bahwa ketika menggunakannya" 10 "array dapat dibuat dalam satu langkah.

Buat array dari disk yang telah kami siapkan di langkah terakhir dengan menerbitkan:

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 semua hanya satu baris meskipun fakta bahwa representasi memecahnya menjadi dua.

Mari kita pecahkan parameternya:

  • "-Chunk = 256" - Ukuran byte garis-garis penyerangan 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 serangan tradisional diperlukan, untuk alasan apa pun, Anda harus membuat dua larik dan bergabung dengan mereka).
  • "-P f2" - Menggunakan rencana rotasi "jauh" lihat catatan di bawah untuk info lebih lanjut dan "2" memberi tahu bahwa larik akan menyimpan dua salinan data.

Catatan: Kami menggunakan rencana "jauh" karena ini menyebabkan tata letak data fisik pada disk untuk TIDAK menjadi sama. Ini membantu untuk mengatasi situasi di mana perangkat keras dari salah satu drive gagal karena kesalahan manufaktur (dan tidak berpikir "ini tidak akan terjadi pada saya" seperti milik Anda benar-benar melakukannya). Karena fakta bahwa kedua disk tersebut memiliki merek dan model yang sama, telah digunakan dengan cara yang sama dan secara tradisional telah menyimpan data pada lokasi fisik yang sama ... Resikonya ada bahwa drive yang menyimpan salinan data telah gagal terlalu atau dekat dengan dan tidak akan memberikan ketahanan yang dibutuhkan sampai disk pengganti tiba. Rencana "jauh" membuat distribusi data ke lokasi fisik yang sama sekali berbeda pada drive salinan selain menggunakan disk yang tidak dekat satu sama lain dalam casing komputer. Informasi lebih lanjut dapat ditemukan di sini dan di tautan di bawah.

Setelah array dibuat maka akan memulai proses sinkronisasi. Meskipun Anda mungkin ingin menunggu demi tradisi (karena ini mungkin memakan waktu cukup lama), Anda dapat mulai menggunakan larik dengan segera.

Kemajuan dapat diamati menggunakan:

perhatikan -d kucing / proc / mdstat

Buat File Konfigurasi mdadm.conf

Meskipun telah terbukti bahwa Ubuntu hanya tahu untuk memindai dan mengaktifkan array secara otomatis 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 bagian dari kewarasan admin sistem. Informasi ini dapat, dan harus disimpan di file mdadm.conf. Formatnya bisa rumit, tapi untungnya output dari perintah mdadm -detail -scan -verbose menyediakan Anda dengan itu.

Catatan: Telah 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 hanya akan melakukannya.

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 menerbitkan "pindai ” 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 filesystem pada array

Saya menggunakan ext4 untuk contoh ini karena bagi saya itu hanya dibangun di atas keakraban dari filesystem ext3 yang datang sebelum itu sambil memberikan menjanjikan kinerja dan fitur yang lebih baik.
Saya menyarankan meluangkan waktu untuk menyelidiki filesystem apa yang lebih baik sesuai dengan kebutuhan Anda dan awal yang baik untuk itu adalah "Linux File System Yang Harus Anda Pilih"? Artikel.

sudo mkfs.ext4 / dev / md0

Catatan: Dalam hal ini saya tidak mempartisi array yang dihasilkan karena, saya memang tidak membutuhkannya pada saat itu, karena pihak yang meminta secara khusus meminta setidaknya 3,5T ruang terus menerus. Dengan mengatakan bahwa, jika saya ingin membuat partisi, saya harus menggunakan utilitas yang dapat mempartisi GPT seperti “parted”.

Mounting

Buat titik mount:

sudo mkdir / media / raid10

Catatan: Ini bisa lokasi apa saja, di atas hanya contoh.

Karena kita berurusan dengan "perangkat rakitan" kita akan melakukannya tidak gunakan UUID filesystem yang ada di perangkat untuk dipasang (seperti yang direkomendasikan untuk jenis perangkat lain di “apa panduan linux fstab dan bagaimana cara kerjanya”) karena sistem mungkin benar-benar melihat bagian dari filesystem pada disk individual dan mencoba untuk salah Pasang secara langsung. untuk mengatasi ini kami ingin secara eksplisit menunggu perangkat untuk "dirakit" sebelum kami mencoba memasangnya, 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 mount atau filesystem dari contoh, Anda harus menyesuaikan yang sesuai 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 secara otomatis dipasang saat sistem dimulai ulang:

sudo mount -a

Anda seharusnya sekarang dapat melihat array yang dipasang dengan perintah "mount" tanpa parameter.

Email Alerts untuk Array RAID

Tidak seperti RAID perangkat keras array, dengan perangkat lunak array tidak ada pengendali yang akan mulai berbunyi untuk memberi tahu Anda ketika ada sesuatu yang salah. Oleh karena itu, lansiran Email akan menjadi satu-satunya cara kami untuk mengetahui apakah sesuatu terjadi pada satu atau beberapa disk dalam larik, dan dengan demikian menjadikannya langkah paling penting.

Ikuti panduan "Cara Pengaturan Email Alerts pada Linux Menggunakan Gmail atau SMTP" dan setelah selesai kembali ke sini untuk melakukan langkah-langkah spesifik RAID.

Konfirmasikan bahwa mammm dapat mengirim Email
Perintah di bawah ini, akan memberitahu mdadm untuk memecat hanya satu email dan tutup.

sudo mdadm --monitor --scan --test --oneshot

Jika berhasil, Anda harus mendapatkan Email, merinci kondisi larik.

Atur konfigurasi mdadm untuk mengirim Email saat startup
Meskipun tidak mutlak harus, itu bagus untuk mendapatkan pembaruan dari waktu ke waktu dari mesin untuk memberi tahu kami bahwa kemampuan email masih bekerja 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 "di loop" tetapi itu bukan suatu keharusan.

Konfigurasi Samba

Menginstal SaMBa pada server Linux memungkinkannya untuk bertindak seperti server file windows. Jadi untuk mendapatkan data yang kami hosting di server Linux tersedia untuk klien windows, kami akan menginstal dan mengkonfigurasi SaMBa.
Sangat lucu untuk dicatat bahwa nama paket SaMBa adalah pelesetan pada protokol Microsoft yang digunakan untuk file sharing yang disebut SMB (Service Message Block).

Dalam panduan ini, server digunakan untuk tujuan pengujian, jadi kami akan mengaktifkan akses ke bagiannya tanpa membutuhkan kata sandi, Anda mungkin ingin menggali sedikit lebih dalam bagaimana cara mengatur izin setelah pengaturan selesai.

Juga disarankan agar Anda membuat pengguna non-istimewa untuk menjadi pemilik file. Dalam contoh ini kami menggunakan pengguna "geek" yang telah kami buat untuk tugas ini. Penjelasan tentang cara membuat pengguna dan mengelola kepemilikan dan izin dapat ditemukan di Panduan “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 share yang disebut "umum" yang akan memberikan akses ke titik mount "/ media / raid10 / umum" dengan menambahkan file di bawah ini.

[umum]
path = / media / raid10 / umum
pengguna paksa = geek
kelompok gaya = geek
hanya baca = Tidak
buat topeng = 0777
mask direktori = 0777
hanya tamu = Ya
tamu ok = Ya

Pengaturan di atas membuat share dapat dialamatkan tanpa kata sandi kepada siapa pun dan menjadikan pemilik default dari file tersebut sebagai pengguna "geek".

Untuk referensi Anda, file smb.conf ini diambil dari server yang berfungsi.

Restart layanan samba untuk pengaturan agar terpengaruh:

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 setiap kotak jendela menggunakan:

\ server-namegeneral

Penyelesaian masalah

Ketika Anda perlu memecahkan masalah atau disk telah gagal dalam array, saya sarankan mengacu pada lembar cheat mdadm (itulah yang saya lakukan ...).

Secara umum Anda harus ingat bahwa ketika disk gagal Anda harus "menghapus" dari array, mematikan mesin, mengganti drive yang gagal dengan pengganti dan kemudian "menambahkan" 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 membangun kembali dan melihat kemajuan dengan:

perhatikan -d kucing / proc / mdstat

Semoga berhasil! :)

Referensi:
lembar contekan mdadm
Tingkat RAID rusak
Linux RAID10 menjelaskan
halaman man perintah mdadm
halaman man konfigurasi mdadm file
Pembatasan partisi dijelaskan

Menggunakan perangkat lunak RAID tidak akan banyak biaya ... Hanya SUARA Anda ;-)