Kumpulan penyimpanan server file Linux

8

Apakah mungkin untuk mendapatkan server linux untuk berbagi beberapa hard drive sebagai satu kumpulan penyimpanan melalui Samba? Sehingga ketika saya menggunakan share saya tidak perlu khawatir tentang menabung ke drive tertentu yang memiliki ruang kosong, tetapi saya menyimpan ke pool yang menangani semua itu.

Saya kira saya bisa melakukan ini melalui beberapa jenis serangan (perangkat lunak), tetapi banyak file saya tidak perlu digerebek. Tujuan saya adalah memiliki pengaturan di mana saya telah ~ 500GB menggerebek dan beberapa ruang tanpa TB.

Saat ini saya memiliki server W2008 yang ringan dan ingin pindah ke linux dan ini akan menjadi fitur yang sangat bagus untuk dimiliki.

Illotus
sumber

Jawaban:

19

Di Linux, Anda bisa menggunakan LVM untuk mengumpulkan beberapa hard drive (PV) menjadi satu Volume Group (VG) dan mempartisi dengan Logical Volumes (LV) yang ingin Anda bagikan melalui samba.

Lihat tautan ini untuk info lebih lanjut.

Skema LVM

ℝaphink
sumber
1
Pilihan gambar yang bagus untuk menggambarkan konsep.
andol
7

Saya akan menyarankan saran kedua Raphink tentang LVM (dan meningkatkannya, pada kenyataannya) - ini adalah persis apa yang dirancang untuk LVM dan bekerja dengan baik dalam pengalaman saya.

Satu hal yang perlu diperhatikan adalah bahwa menggunakan LVM pada banyak drive hanya sedikit lebih aman daripada RAID0 - jika satu drive tidak turun Anda mungkin kehilangan lebih dari satu drive senilai filesystem karena volume logis mengangkangi batas-batas drive. Jadi sementara "banyak file saya tidak perlu digerebek", pastikan Anda memiliki rencana cadangan yang baik untuk file-file yang tidak begitu mudah untuk diganti.

Jika Anda server penyimpanan cenderung melihat banyak aktivitas, Anda dapat mempertimbangkan menggunakan RAID0 dan juga LVM. Ini akan memberi Anda peningkatan kinerja yang signifikan untuk banyak pola I / O, dan tidak akan mengurangi ruang penyimpanan total yang tersedia (karena RAID0 tidak menawarkan redundansi, jadi tidak menggunakan ruang untuk data cermin atau blok paritas). Setelah Anda mengikat beberapa drive bersama-sama dalam array RAID0, Anda dapat membuat array menjadi LVM PV seperti halnya drive / partisi lain dan menggunakan volume logis untuk mempartisi ruang yang diperlukan.

Tentu saja dengan RAID0 Anda pasti kehilangan segalanya jika drive mati, tetapi jika Anda memiliki rencana cadangan yang cukup untuk JBOD (yang Anda lakukan hanya dengan LVM, itu setara dengan apa yang oleh beberapa referensi RAID menyebutnya "mode linear ") Anda memiliki satu yang cukup untuk data pada RAID0 (dan siapa pun yang mengatakan tidak cukup paranoid tentang data yang mereka miliki di beberapa drive menggunakan LVM!).

Anda dapat mencampur dan mencocokkan level RAID pada drive yang sama. Pada salah satu mesin di bawah kendali saya yang berjalan sebagai host VM untuk pengembangan dan pengujian, drive dalam array memiliki beberapa bagian sebagai RAID0 (untuk VM sendiri) dan beberapa sebagai RAID1 (untuk cadangan VM). Setiap drive dibagi menjadi ~ 100Gb partisi dan setiap set atau partisi dapat berupa array RAID. Dua yang pertama pada masing-masing drive saat ini RAID0 (dihubungkan sebagai satu volume logis oleh LVM), tiga RAID1 terakhir (sekali lagi dihubungkan sebagai satu LV), dan yang tersisa di tengah bebas untuk menjadi baik ketika lebih banyak ruang diperlukan. Jika Anda melakukan ini, Anda tentu harus waspada terhadap pertengkaran I / O (bukan ta masalah dalam kasus saya karena dua array RAID jarang melihat aktivitas yang terlihat pada saat yang sama karena set RAID1 hanya akses ketika membuat cadangan baru atau mengembalikan yang lama) dan gerakan head berlebih ketika kedua array sedang digunakan aktif (seperti mereka berada di ujung berlawanan dari drive), tetapi Anda harus menyadari itu hanya menggunakan LVM tanpa RAID. Pengaturan ini berarti saya tidak perlu menebak secara akurat, pada waktu pemasangan, keseimbangan berapa banyak ruang kecepatan tinggi (R0) dan ruang keselamatan tinggi (R1) yang dibutuhkan mesinX bulan ke depan tanpa kompromi dan hanya berjalan untuk array RAID10 tunggal.

David Spillett
sumber
"Jika satu drive turun, Anda mungkin kehilangan lebih dari satu drive dari sistem file karena volume logis yang melintasi batas-batas drive." Terima kasih untuk nugget ini, sepertinya saya harus merevisi rencana saya.
Illotus
Perhatikan bahwa ini adalah masalah yang sama yang Anda miliki dengan sistem RAID0: jika satu drive turun, Anda kehilangan data. Seperti yang disarankan dalam jawaban David, Anda dapat menggabungkan RAID dan LVM. Menggabungkan sistem RAID0 dengan LVM berlebihan dan tidak berguna, tetapi menggabungkan RAID1, 10, 4, 5 atau 6 dengan LVM memastikan data Anda tidak akan hilang jika Anda kehilangan satu atau lebih hard drive. Anda juga akan dikenakan biaya lebih banyak dalam perangkat keras, karena Anda membutuhkan lebih banyak ruang disk daripada ruang data yang sebenarnya dapat digunakan. Jenis RAID sebagian besar tergantung pada jenis penggunaan tempat Anda membuatnya. Jika Anda tidak memiliki RAID perangkat keras, Anda dapat menggunakan LVM di atas mdadm.
ℝaphink
3
Menggabungkan RAID0 dengan LVM tidak sia-sia - tergantung pada beban I / O Anda (katakanlah, banyak operasi file bersamaan melalui jaringan Gbit) Anda bisa melihat peningkatan kinerja yang cukup dari striping yang dilakukan oleh RAID0. Bahkan lebih dari 100Mbit link Anda mungkin melihat perbedaan untuk beberapa akses bersamaan dan / atau sangat tidak berurutan. Untuk beban I / O yang kurang sulit, perbedaannya mungkin tidak signifikan.
David Spillett
Menggabungkan RAID-0 dengan LVM tidaklah sia-sia. LVM secara default mengalokasikan ruang secara berurutan dari awal. Ini dapat memengaruhi kinerja jika satu bagian dari set LVM mendapat semua perhatian I / O, memfokuskan aktivitas itu pada satu disk. RAID-0 secara eksplisit menghapus data di semua disk dalam array RAID-0. Ini dapat mempercepat aktivitas membaca dan menulis. Perbedaannya adalah, jika satu disk dalam set LVM gagal, Anda mungkin akan kehilangan setidaknya beberapa data. Jika satu disk dalam set RAID-0 gagal, Anda AKAN kehilangan SEMUA data. Gagasan RAID-5 yang diajukan oleh Raphink memberi Anda setidaknya ilusi perlindungan terhadap kegagalan disk
David Mackintosh
Terima kasih atas klarifikasi ini David & David, itu sangat menarik untuk dipertimbangkan. Apakah Anda menganggap bahwa LVM di atas RAID0 sepadan bahkan jika Anda menggunakan sistem RAID perangkat lunak seperti mdadm, atau hanya dengan sistem RAID perangkat keras?
ℝaphink
2

Saya juga merekomendasikan untuk melihat ZFS yang juga berisi drive pooling dan RAID mirroring.

Ada beberapa masalah dengan perizinan yang membuatnya agak canggung untuk diterapkan tetapi saya telah menjalankannya di sistem rumah saya dengan drive 3 x 1TB tanpa masalah.

Dave Drager
sumber
2
Saya penggemar berat ZFS tetapi saya tidak akan merekomendasikan menjalankannya di Linux sebagai sistem file FUSE dalam lingkungan produksi. Untuk Linux Anda lebih baik menunggu BTRFS matang. BTRFS memiliki desain yang lebih baik daripada ZFS tetapi saya pikir masih setidaknya satu tahun, mungkin beberapa, dari siap produksi.
3dinfluence