Penyimpanan Cloud Riak. Bagian 1: Menyiapkan Riak KV

Riak CS (Penyimpanan Cloud) – perangkat lunak yang mudah digunakan untuk mengatur penyimpanan objek, berjalan di atas Riak KV. Riak (KV) adalah database nilai kunci NoSQL yang terdistribusi. Riak CS dirancang untuk memberikan kesederhanaan, ketersediaan, distribusi penyimpanan cloud dalam skala apa pun, dan dapat digunakan untuk membangun arsitektur cloud - baik publik maupun pribadi - atau sebagai penyimpanan infrastruktur untuk aplikasi dan layanan dengan muatan tinggi. Riak CS API kompatibel dengan Amazon S3 dan mendukung kemampuan untuk menerima laporan tentang berbagai situasi.

Penyimpanan Cloud Riak. Bagian 1: Menyiapkan Riak KV
Artikel ini merupakan terjemahan gratis dari manual resmi sistem Riak CS versi 2.1.1

Dalam sistem penyimpanan Riak CS, tiga komponen bekerja bersama satu sama lain, artinya setiap komponen harus dikonfigurasi agar dapat bekerja dengan komponen lainnya:

  • Riak (KV) – sistem database yang bertindak sebagai sistem akhir.
  • Riak CS - Lapisan penyimpanan cloud di atas Riak yang menyediakan kemampuan penyimpanan dan API, menyimpan file dan metadata di Riak, dan kemudian mendistribusikannya ke pengguna akhir.
  • Tiang penopang - Mengelola kueri yang melibatkan entitas unik global seperti bucket dan pengguna di instans Riak. Misalnya membuat pengguna, membuat atau menghapus bucket.

Selain itu, Anda juga dapat mengonfigurasi klien S3 untuk digunakan dalam perpesanan 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, namun dalam kebanyakan kasus, lebih baik 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 performa yang lebih baik karena berkurangnya latensi jaringan.

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

Menyiapkan 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 menjalankan Riak CS. Dokumen ini merupakan panduan konfigurasi Riak dan dokumen referensi yang menjelaskan parameter konfigurasi penting.

Sebelum setup, pastikan Riak KV dan Riak CS diinstal pada setiap node di cluster Anda. Stanchion, sebaliknya, hanya boleh dipasang pada satu node di seluruh cluster.

Penyimpanan Cloud Riak. Bagian 1: Menyiapkan Riak KV

Backend untuk Riak CS

Backend default yang digunakan oleh Riak adalah Bitcask, namun paket Riak CS menyertakan backend khusus yang harus digunakan oleh cluster Riak yang merupakan bagian dari sistem Riak CS. Versi reguler memiliki Multi backend standar yang disertakan dengan Riak.

Bucket Riak yang sama yang digunakan di dalam Riak CS menggunakan indeks sekunder, yang sekarang memerlukan backend LevelDB. Bagian lain dari sistem Riak CS bisa mendapatkan keuntungan dari penggunaan backend Bticask. Penggunaan sampel Multi backend disertakan dalam Riak CS untuk memanfaatkan kedua backend ini guna mencapai kombinasi kinerja dan fungsionalitas terbaik. Bagian selanjutnya menjelaskan cara mengkonfigurasi Riak dengan benar untuk menggunakan Multi-backend ini.

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

Selain itu, sistem penghitungan penyimpanan menggunakan Riak MapReduse untuk menggabungkan file ke dalam keranjang. Ini berarti Anda harus memberi tahu semua node Riak di mana mencari file Riak CS yang telah disiapkan sebelum menghitung penyimpanan.

Beberapa parameter lain harus diubah untuk mengkonfigurasi node Riak sebagai bagian dari sistem Riak CS, seperti alamat IP dan alamat IP serta port untuk pengiriman pesan melalui Protocol Buffer. Pengaturan lainnya dapat diubah jika perlu. Bagian berikut menjelaskan cara mengonfigurasi 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

LANJUTAN.CONFIG

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

APLIKASI.CONFIG

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

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

LANJUTAN.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
]}

APLIKASI.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 petunjuknya dengan tepat. Misalnya, opsi add_paths mengasumsikan bahwa Riak CS diinstal di /usr/lib/riak-cs, sedangkan opsi data_root mengasumsikan bahwa Riak diinstal di /var/lib. (Catatan: Dalam kasus saya itu adalah add_paths - /usr/lib64/riak-cs/).

Konfigurasi ini mengasumsikan bahwa 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 menyetel parameterallow_mult ke true. Kita dapat menambahkan baris di file konfigurasi riak.conf, atau bagian riak_core di advanced.config atau app.config.

RIAK.CONF

buckets.default.allow_mult = true

LANJUTAN.CONFIG

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

APLIKASI.CONFIG

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

Hal ini akan memungkinkan Riak untuk membuat saudara kandung yang diperlukan agar Riak CS dapat 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 seperti yang ditentukan.

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

Catatan: izinkan_mult
Node Riak mana pun yang juga mendukung Riak CS akan menyetel Allow_mult ke true setiap saat. Riak CS akan mereset peluncuran jika nilainya salah.

Mengatur Nama Host dan Alamat IP

Setiap node Riak memiliki nama, yang dapat ditentukan pada opsi nama node di riak.conf. 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 flag -name. Kami menyarankan untuk menentukan nama node dalam format @. Jadi jika Anda memiliki tiga node yang berjalan pada satu host 100.0.0.1, Anda dapat memanggil mereka [email dilindungi], [email dilindungi]Dan [email dilindungi] atau Anda dapat memberikan nama yang lebih spesifik, seperti [email dilindungi], [email dilindungi] dan seterusnya. Contoh di bawah ini menunjukkan perubahan nama host menjadi [email dilindungi], yang akan berjalan di localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Anda harus memberi nama semua node sebelum memulainya dan bergabung dengan cluster.

Tes pengaturan

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

SHELL

 riak start 

Catatan Jawabannya dalam kasus saya:

Penyimpanan Cloud Riak. Bagian 1: Menyiapkan Riak KV

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

SHELL

 riak ping

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

Catatan Jawabannya dalam kasus saya:

Penyimpanan Cloud Riak. Bagian 1: Menyiapkan Riak KV

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 jalur ke perpustakaan Riak CS di advanced.config atau di app.config salah (atau Riak CS tidak diinstal di server). Meskipun terjadi kesalahan ini, pastikan Anda belum mengubah dari riak_cs_kv_multi_backend menjadi riak_kv_multi_backend.

Mengonfigurasi Riak untuk menggunakan buffer protokol

Setting buffer protokol Riak terletak di riak.conf atau di bagian riak_api pada 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 lingkungan non-lokal. Ganti 127.0.0.1 dengan alamat IP host Riak dan port 8087 dengan yang sesuai.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

LANJUTAN.CONF

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

APLIKASI.CONFIG

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

Catatan:Nilai parameter pendengar.protobuf.internal di file 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 .config/app.config lanjutan).

Catatan tentang nomor port
Nomor port yang berbeda mungkin diperlukan jika port tersebut bertentangan dengan port yang digunakan oleh aplikasi lain atau jika Anda menggunakan penyeimbang beban atau server proksi.

Pengguna juga disarankan untuk memastikan bahwa ukuran protobuf.backlog Riak (atau dalam file advanced.config/app.config adalah pb_backlog) sama dengan atau lebih besar dari 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 telah diubah, maka nilai protobuf.backlog juga harus diperbarui di Riak.

Pengaturan Riak lainnya

File riak.conf dan advanced.config menyertakan pengaturan lain yang mengonfigurasi pembuatan file log dan lokasi penyimpanannya. Pengaturan ini memiliki nilai default dan seharusnya berfungsi di sebagian besar kasus. Untuk informasi lebih lanjut, kami menyarankan Anda membaca dokumentasi kami tentang file konfigurasi.

Menyiapkan alamat IP untuk Riak

Saat mengatur alamat IP untuk Riak, Anda harus yakin bahwa node Riak memiliki alamat IP yang unik, baik 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 direktori /etc/riak (atau /opt/riak/etc/ pada sistem operasi lain).

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

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

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

Pengaturan Kinerja dan Bandwidth

Untuk alasan kinerja, 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

Menonaktifkan JavaScript MapReduce

Disarankan untuk tidak menggunakan JavaScript MapReduce lama dengan versi Riak CS apa pun. Untuk alasan kinerja, Anda harus menonaktifkan mesin virtual yang menjalankan operasi JavaScript MapReduce dengan mengaturnya di file konfigurasi riak.conf, atau di bagian riak_kv di advanced.conf atau app.config:

RIAK.CONF

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

LANJUTAN.CONFIG

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

APLIKASI.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 sisa komponen sistem Riak CS.

Panduan asli.

Sumber: www.habr.com

Tambah komentar