Apakah ide yang baik untuk menyimpan volume Docker di glusterfs?

24

Saat ini saya sedang berpikir tentang migrasi beberapa server dan aplikasi kami ke lingkungan coreOS . Salah satu masalah yang saya lihat di sini adalah pengelolaan data persisten karena coreOS tidak menangani volume Docker saat memindahkan wadah ke mesin baru. Setelah beberapa penelitian saya menemukan glusterFS yang mengklaim sebagai sistem file cluster yang bisa menyelesaikan semua masalah saya.

Gagasan saya saat ini adalah ini: Saya memiliki wadah glusterFS yang berjalan sebagai wadah istimewa di setiap mesin coreOS saya dan memperlihatkan penyimpanan, /mnt/glustermisalnya. Dalam Dockerfiles saya , saya menentukan bahwa semua volume saya harus dipasang di jalur ini.

Hal berikutnya yang saya pertimbangkan adalah wadah mana yang harus mendapatkan volume mereka sendiri dan mana yang harus dibagikan. Misalnya, setiap mysqlwadah akan mendapatkan volumenya sendiri karena dapat menangani replikasi dengan sendirinya. Saya tidak ingin dipusingkan dengan itu. Pengamat web yang melayani situs web yang sama akan menggunakan volume yang sama untuk hal-hal seperti "gambar yang diunggah pengguna", dll. Karena mereka tidak dapat mereplikasi data tersebut.

Adakah yang pernah mencoba sesuatu seperti ini atau ada sesuatu yang saya lewatkan?

Martin
sumber
1
Saya telah melakukan pembuktian konsep dengan ini dan dapat memberi tahu Anda bahwa itu berhasil, tetapi sebelum Anda beralih ke Gluster pastikan Anda memahami profil penyetelannya. Karena bagaimana Gluster sensitif terhadap latensi disk (mirip dengan etcd), itu dapat membuat aplikasi lebih lambat secara artifisial demi menjamin replikasi file.
Brian Redbeard
2
Kami sedang mengerjakan alat yang mengelola volume yang terpasang pada kontainer buruh pelabuhan. Ini disebut "flocker" dan Anda dapat melihat repo github di sini: github.com/clusterhq/flocker Saat ini kami memiliki backend penyimpanan untuk ZFS yang menggunakan fitur snapshot untuk membuat migrasi data lebih mudah tetapi kami juga memiliki rencana untuk backend penyimpanan lainnya (seperti backend perangkat blok umum) Saya tidak bisa mengatakan apakah itu ide yang bagus untuk me-mount volume buruh pelabuhan menggunakan GlusterFS tapi saya bisa menjamin untuk pola desain keseluruhan - yaitu akuntansi untuk keadaan yang dihasilkan oleh wadah buruh pelabuhan menggunakan "sesuatu"
Bino Carlos
1
Terima kasih atas jawaban anda. Saya sudah melihat flocker dan terlihat sangat menjanjikan. Apakah Anda memiliki tanggal kasar untuk dukungan Coreo atau versi siap produksi 1.0?
Martin
Saya telah menggunakan glusterf untuk volume dengan OpenStack yang sebelumnya memiliki setup yang mirip dengan apa yang Anda lakukan dan itu sangat bagus.
Ethode
@ Martin Kami (saya bekerja di ClusterHQ) meminta Flocker untuk menggunakan CoreOS menggunakan Amazon EBS. coreos.com/blog/Flocker-on-CoreOS-Linux
Stephen Nguyen

Jawaban:

9

Kami telah menggunakan pengaturan serupa dengan Atomic ( http://www.projectatomic.io/ ) alih-alih CoreOS ke sistem penyimpanan GlusterFS non-terdeplikasi yang direplikasi dengan tiga set replika-2. Ini bekerja dengan sangat baik.

Namun, Anda perlu mengingat beberapa karakteristik khusus GlusterFS. Seperti yang sudah disebutkan Brian, Gluster menempatkan konsistensi dan keandalan di atas segalanya. Semakin sering perubahan terjadi, semakin banyak replikasi yang terjadi. Ini menempatkan banyak, dan maksud saya BANYAK, tekanan pada sistem Anda.

Berhati-hatilah bahwa subsistem IO Anda cepat (ya, penyimpanannya), sambungkan node Gluster Anda dengan koneksi jaringan tercepat yang tersedia. Jika Anda hanya memiliki GBit, gabungkan! Last but not least, sistem penyimpanan harus olahraga kekuatan komputasi yang serius, Gluster melakukan banyak perhitungan untuk memeriksa keadaannya. Yang sedang berkata, bahkan di bawah beban tinggi, Gluster memberikan.

Pertimbangkan kembali strategi MySQL Anda. Gluster melakukan replikasi untuk Anda dan juga menyediakan semacam penyeimbangan beban dalam pengiriman. Mungkin sebenarnya lebih cepat menggunakan Gluster.

bjanssen
sumber
5

Penggunaan glusterfs akan bergantung pada backend penyimpanan yang Anda gunakan. Sebagai sistem file cluster ini dimaksudkan untuk mengelompokkan penyimpanan fisik sehingga muncul sebagai satu volume kontinu yang besar. IniPanduan memulai cepat resmi memiliki penjelasan yang baik tentang prosesnya.

Jika setup Anda menggunakan dua atau lebih server penyimpanan backend terpisah atau sesuatu yang serupa untuk menyimpan semua volume buruh pelabuhan, maka menggunakan glusterfs atau beberapa sistem file paralel serupa lainnya dapat menawarkan keuntungan kinerja yang signifikan. Jika demikian, Anda juga dapat mempertimbangkan untuk menggunakan Lustre , yang banyak digunakan sebagai sistem file paralel di komunitas HPC.

Dengan mengatakan hal itu, menyetel, men-debug dan mengkonfigurasi sistem file paralel / kluster dapat menjadi tugas yang memakan waktu yang membutuhkan banyak keahlian, kesabaran, dan kadang-kadang kesediaan untuk memulai kembali dari awal. Akan lebih bijaksana untuk memastikan bahwa manfaat kinerja yang ditawarkan sistem file paralel sepadan dengan jumlah upaya yang diperlukan untuk mengatur dan memeliharanya.

Mat
sumber