Penyimpanan Cloud Riak. Bagian 1. Menyiapkan Riak KV

Riak CS (Cloud Storage) adalah perangkat lunak penyimpanan objek yang mudah digunakan yang berjalan di atas Riak KV. Riak (KV) adalah database nilai kunci NoSQL terdistribusi. Riak CS dirancang untuk memberikan kesederhanaan, ketersediaan, dan distribusi penyimpanan cloud dalam berbagai ukuran, dan dapat digunakan untuk membangun arsitektur cloud - baik publik maupun pribadi - atau sebagai penyimpanan infrastruktur untuk aplikasi dan layanan yang sangat muat. API Riak CS kompatibel dengan Amazon S3 dan mendukung kemampuan untuk menghasilkan laporan untuk berbagai situasi.



gambar


Artikel ini merupakan terjemahan gratis dari manual resmi untuk sistem Riak CS versi 2.1.1.



Dalam sistem penyimpanan Riak CS, tiga komponen bekerja sama satu sama lain, yang berarti setiap komponen harus dikonfigurasi untuk bekerja dengan komponen lainnya:



  • Riak (KV) adalah sistem basis data yang bertindak sebagai sistem akhir.
  • Riak CS adalah lapisan penyimpanan cloud di atas Riak yang menyediakan penyimpanan dan kemampuan API, menyimpan file dan metadata di Riak, dan kemudian mentransfernya ke pengguna akhir.
  • Stanchion - Mengelola kueri yang melibatkan entitas yang unik secara global seperti keranjang dan pengguna dalam instance Riak. Misalnya, membuat pengguna, membuat atau menghapus keranjang.


Selain itu, Anda juga dapat mengkonfigurasi klien S3 untuk digunakan dalam pengiriman pesan dengan sistem Riak CS.



Anda harus merencanakan untuk memiliki satu Node Riak untuk setiap Node Riak CS di sistem Anda. Node Riak dan Riak CS dapat dijalankan pada mesin fisik yang berbeda, tetapi dalam banyak kasus lebih disukai untuk menjalankan satu node Riak dan satu node Riak CS pada mesin fisik yang sama. Dengan asumsi satu mesin fisik memiliki daya yang cukup untuk memenuhi kebutuhan node Riak dan Riak CS, Anda biasanya akan melihat kinerja yang lebih baik karena latensi jaringan yang berkurang.



Jika sistem Anda terdiri dari beberapa node, konfigurasi utamanya adalah tentang menyiapkan komunikasi antar komponen. Pengaturan lain, seperti di mana dan di mana file log akan disimpan, memiliki nilai default dan hanya perlu diubah jika Anda ingin menggunakan nilai non-standar.



Mengonfigurasi komponen sistem. Menyiapkan Riak KV untuk CS



Karena Riak CS adalah aplikasi yang dibangun di atas Riak, sangat penting untuk memperhatikan konfigurasi Riak Anda saat memulai Riak CS. Dokumen ini adalah panduan konfigurasi Riak sekaligus dokumen referensi untuk menjelaskan parameter konfigurasi yang penting.



Pastikan Riak KV dan Riak CS diinstal pada setiap node di cluster Anda sebelum melakukan konfigurasi. Stanchion, di sisi lain, hanya boleh diinstal pada satu node di seluruh cluster.



gambar


Backend untuk Riak CS



Secara default backend yang digunakan oleh Riak adalah Bitcask, tetapi paket Riak CS menyertakan backend khusus yang harus digunakan oleh cluster Riak yang merupakan bagian dari sistem Riak CS. Versi biasa memiliki Multi backend standar yang dikirimkan bersama Riak.



Bucket Riak yang sama yang digunakan secara internal oleh Riak CS menggunakan indeks sekunder yang sekarang memerlukan backend LevelDB. Bagian lain dari sistem Riak CS dapat memanfaatkan backend Bticask. Penggunaan Multi backend teladan disertakan dalam Riak CS untuk memanfaatkan kedua backend ini untuk mencapai kombinasi terbaik antara kinerja dan fungsionalitas. Bagian selanjutnya menjelaskan cara mengkonfigurasi Riak dengan benar untuk menggunakan Multi-backend ini.



Backend inilah yang akan digunakan Riak untuk menyimpan data. Riak KV memiliki beberapa backend di gudangnya: Bitcask, LevelDB, Memory dan Multi.


Selain itu, sistem komputasi penyimpanan menggunakan Riak MapReduse untuk meringkas file ke dalam keranjang. Ini berarti bahwa Anda harus memberi tahu semua node Riak tempat mencari file Riak CS yang disediakan sebelum menghitung penyimpanan.



Beberapa parameter lain harus diubah untuk mengkonfigurasi node Riak sebagai bagian dari sistem Riak CS, seperti alamat IP dan alamat IP dan port untuk pengiriman pesan melalui Protocol Buffer. Pengaturan lainnya dapat diubah jika perlu. Bagian berikut menjelaskan cara mengkonfigurasi node Riak untuk beroperasi sebagai bagian dari sistem Riak CS.



Menyiapkan backend Riak



Pertama, file konfigurasi riak.conf atau advanced.config / app.config diedit. File-file ini dapat ditemukan di direktori / etc / riak atau / opt / riak / etc. Secara default, Riak menggunakan backend Bitcask. Hal pertama yang perlu kita lakukan adalah mengubah file konfigurasi dengan menghapus baris berikut:



RIAK.CONF



## Delete this line:
storage_backend = bitcask


ADVANCED.CONFIG



{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}


APP.CONFIG



{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}


Selanjutnya, kita perlu menunjukkan kebutuhan modul RiakCS untuk Riak dan memberitahu Riak untuk menggunakan backend Riak CS yang telah disesuaikan. Kita perlu menggunakan file advanced.config atau app.config untuk ini dan menambahkan opsi berikut:



ADVANCED.CONFIG



{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}


APP.CONFIG



{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}


Sangat penting untuk dicatat bahwa banyak dari nilai-nilai ini akan bergantung pada variasi direktori khusus untuk sistem operasi Anda, jadi ikuti petunjuk yang sesuai. Misalnya, parameter add_paths mengasumsikan bahwa Riak CS diinstal di / usr / lib / riak-cs, sedangkan parameter data_root menganggap Riak diinstal di / var / lib. (Catatan. Dalam kasus saya itu add_paths - / usr / lib64 / riak-cs /).



Konfigurasi ini mengasumsikan Riak CS diinstal pada mesin yang sama dengan Riak. Jika tidak, maka paket tersebut perlu disalin ke host terpisah.



Menyiapkan kreasi saudara



Sekarang, kita perlu mengatur parameter allow_mult menjadi true. Kita bisa menambahkan baris di file konfigurasi riak.conf, atau bagian riak_core di advanced.config atau app.config.



RIAK.CONF



buckets.default.allow_mult = true




ADVANCED.CONFIG

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}


APP.CONFIG



{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}


Ini akan memungkinkan Riak untuk membuat saudara yang Riak cs butuhkan untuk berfungsi. Jika Anda terhubung ke Riak CS menggunakan perpustakaan klien, jangan khawatir: Anda tidak perlu menyelesaikan konflik, karena semua operasi Riak CS benar-benar konsisten menurut definisinya.



Saudara adalah cara menyimpan banyak objek dalam satu kunci sehingga objek tersebut memiliki nilai yang berbeda pada node yang berbeda.


Catatan: allow_mult

Setiap node Riak yang juga mendukung Riak CS akan selalu menyetel parameter allow_mult ke true. Riak CS akan mereset startup jika nilainya salah.


Mengatur nama host dan alamat IP



Setiap node Riak memiliki nama yang dapat dispesifikasikan di riak.conf dengan opsi nodename. Jika Anda menggunakan file konfigurasi app.config, Anda perlu membuat file bernama vm.args di direktori yang sama dengan app.config dan menentukan nama host menggunakan tanda -name. Kami menyarankan Anda memberi nama node dalam format @. Jadi jika Anda memiliki tiga node yang sedang berjalan pada host yang sama 100.0.0.1, Anda dapat menamainya riak1@100.0.0.1, riak2@100.0.0.1, dan riak3@100.0.0.1, atau Anda dapat menamainya dengan lebih spesifik, seperti test_cluster1@100.0 .0.1, user_data3@100.0.0.1, dan seterusnya. Contoh di bawah ini menunjukkan perubahan nama host ke riak1@127.0.0.1, yang akan berfungsi pada host lokal.



RIAK.CONF



 nodename = riak1@127.0.0.1 


VM.ARGS



 -name riak1@127.0.0.1


Anda harus memberi nama semua node sebelum memulai dan menambahkannya ke cluster.



Tes penyetelan



Sekarang semua pengaturan node yang diperlukan telah selesai, kita dapat mencoba memulai Riak:



SHELL



 riak start 


Approx. Jawaban dalam kasus saya:



gambar



Di sini Anda harus menunggu sebentar. Kemudian Anda dapat mulai menguji node yang sedang berjalan.



KULIT



 riak ping


Jika responnya pong, maka Riak sedang berjalan: jika responnya Node tidak merespon ping, maka ada yang tidak beres.



Approx. Jawaban dalam kasus saya:



gambar



Jika node tidak dimulai dengan benar, lihat log erlang.log.1 di direktori / log node jika masalahnya dapat diidentifikasi. Salah satu kesalahan paling umum adalah invalid_storage_backend. Yang menunjukkan bahwa path ke library Riak CS di advanced.config atau app.config salah (atau Riak CS tidak diinstal di server). Meskipun ada kesalahan ini, pastikan Anda tidak mengubah dari riak_cs_kv_multi_backend menjadi riak_kv_multi_backend.



Mengonfigurasi Riak untuk Menggunakan Protocol Buffer



Setting buffer protokol Riak terletak di bagian riak.conf atau riak_api di file advanced.config atau app.config, yang terletak di direktori / etc / riak /. Secara default, host memiliki alamat IP 127.0.0.1 dan port 8087. Anda perlu mengubahnya jika berencana menjalankan Riak dan Riak CS di luar lingkungan lokal Anda. Ganti 127.0.0.1 dengan IP host Riak dan port 8087 dengan yang sesuai.



RIAK.CONF



 listener.protobuf.internal = 10.0.2.10:10001


ADVANCED.CONF



{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}




APP.CONFIG

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}


Catatan: Nilai parameter listener.protobuf.internal di riak.conf (atau nilai parameter pb di file advanced.conf / app.config) harus sesuai dengan nilai riak_host di Riak CS riak-cs.config dan Stanchion stanchion.conf (atau riak_host masing-masing dalam file advanced.config / app.config).


Catatan tentang nomor port Anda

mungkin memerlukan nomor port berbeda jika port konflik dengan port yang digunakan oleh aplikasi lain, atau jika Anda menggunakan penyeimbang beban atau server proxy.


Juga direkomendasikan agar pengguna memastikan bahwa ukuran protobuf.backlog Riak (atau pb_backlog dalam file advanced.config / app.config) sama atau lebih besar dari ukuran pool.request.size yang ditentukan untuk Riak CS di riak-cs.config (atau request_pool_size dalam file advanced.config / app.conf).



Jika nilai pool.request.size di Riak CS sudah diubah, maka nilai protobuf.backlog di Riak juga harus diupdate.



Pengaturan Riak lainnya



File riak.conf dan advanced.config menyertakan pengaturan lain yang mengkonfigurasi bagaimana file log dibuat dan di mana mereka disimpan. Pengaturan ini memiliki nilai default dan seharusnya berfungsi dalam banyak kasus. Untuk informasi lebih lanjut, kami merekomendasikan membaca dokumentasi kami tentang file konfigurasi.



Menyiapkan alamat IP untuk Riak



Saat mengkonfigurasi alamat IP untuk Riak, Anda harus memastikan bahwa node Riak memiliki alamat IP yang unik, apakah Anda bekerja hanya dengan satu node atau menambahkan lebih banyak node ke sistem. Alamat IP Riak terdapat di riak.conf atau - jika Anda menggunakan file app.config - di file konfigurasi vm.args, yang terletak di sana di direktori / etc / riak (atau / opt / riak / etc / di sistem operasi lain ).



Awalnya, baris yang berisi alamat IP Riak menunjuk ke host lokal di lokasi ini:



RIAK.CONF



 nodename = riak@127.0.0.1


VM.ARGS



 -name riak@127.0.0.1


Ganti 127.0.0.1 dengan alamat IP atau nama host pilihan Anda dari host Riak.



Pengaturan kinerja dan bandwidth



Untuk alasan performa, kami sangat menyarankan untuk menambahkan nilai ke file konfigurasi riak riak.conf atau vm.args yang terletak di direktori / etc / riak / atau / opt / riak / etc.



RIAK.CONF



 erlang.max_ports = 65536


VM.ARGS



## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536


Nonaktifkan JavaScript MapReduce



Direkomendasikan untuk tidak menggunakan JavaScript MapReduce yang tidak digunakan lagi bersama dengan versi Riak CS manapun. Untuk alasan performa, Anda harus menonaktifkan mesin virtual yang menjalankan operasi JavaScript MapReduce dengan menyetel di file konfigurasi riak.conf, atau di bagian riak_kv dari advanced.conf atau app.config:



RIAK.CONF



 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 


ADVANCED.CONFIG



{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}


APP.CONFIG



{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}


Selanjutnya, kita perlu mengkonfigurasi komponen sisa dari sistem Riak CS.



Tautan



Penyimpanan Cloud Riak. Bagian 1. Mengonfigurasi

Penyimpanan Awan Riak KV Riak. Bagian 2. Mengonfigurasi komponen

Riak CS Riak Cloud Storage. Bagian 3. Stanchion, Proxy dan Load Balancing, Manual Asli Klien S3



.



All Articles