Riak Cloud Storage. الجزء 1. إعداد Riak KV

Riak CS (التخزين السحابي) - برنامج سهل الاستخدام لتنظيم تخزين العناصر، يعمل على Riak KV. Riak (KV) هي قاعدة بيانات ذات قيمة مفتاح NoSQL موزعة. تم تصميم Riak CS لتوفير البساطة والتوافر والتوزيع للتخزين السحابي بأي نطاق، ويمكن استخدامه لبناء بنيات سحابية - عامة وخاصة - أو كتخزين البنية التحتية للتطبيقات والخدمات المحملة بشكل كبير. Riak CS API متوافق مع Amazon S3 ويدعم القدرة على تلقي التقارير حول المواقف المختلفة.

Riak Cloud Storage. الجزء 1. إعداد Riak KV
هذه المقالة هي ترجمة مجانية للدليل الرسمي لنظام Riak CS الإصدار 2.1.1

في نظام التخزين Riak CS، تعمل ثلاثة مكونات جنبًا إلى جنب، مما يعني أنه يجب تكوين كل مكون للعمل مع المكونات الأخرى:

  • رياك (KV) – نظام قاعدة بيانات يعمل كنظام نهائي.
  • رياك سي إس - طبقة تخزين سحابية أعلى Riak توفر إمكانيات التخزين وواجهة برمجة التطبيقات (API)، وتخزن الملفات والبيانات الوصفية في Riak، ثم توزعها على المستخدمين النهائيين.
  • مسماك - يدير الاستعلامات التي تتضمن كيانات فريدة عالميًا مثل المجموعات والمستخدمين في مثيل Riak. على سبيل المثال، إنشاء مستخدمين، أو إنشاء مجموعات أو حذفها.

بالإضافة إلى ذلك، يمكنك أيضًا تكوين عميل S3 لاستخدامه في المراسلة مع نظام Riak CS.

يجب أن تخطط للحصول على عقدة Riak واحدة لكل عقدة Riak CS على نظامك. يمكن تشغيل عقد Riak وRiak CS على أجهزة مادية مختلفة، ولكن في معظم الحالات يفضل تشغيل عقدة Riak واحدة وعقدة Riak CS واحدة على نفس الجهاز الفعلي. بافتراض أن جهازًا ماديًا واحدًا لديه ما يكفي من الطاقة لتلبية احتياجات عقدتي Riak وRiak CS، فسوف ترى عمومًا أداءً أفضل بسبب انخفاض زمن وصول الشبكة.

إذا كان نظامك يتكون من عدة عقد، فإن التكوين يتعلق في المقام الأول بإعداد الاتصال بين المكونات. الإعدادات الأخرى، مثل مكان تخزين ملفات السجل، لها قيم افتراضية ولا تحتاج إلى تغيير إلا إذا كنت تريد استخدام قيم غير قياسية.

إعداد مكونات النظام. إعداد Riak KV لـ CS

نظرًا لأن Riak CS هو تطبيق مبني على Riak، فمن المهم جدًا الانتباه إلى تكوين Riak الخاص بك عند تشغيل Riak CS. هذه الوثيقة عبارة عن دليل تكوين Riak ووثيقة مرجعية تصف معلمات التكوين المهمة.

قبل الإعداد، تأكد من تثبيت Riak KV وRiak CS على كل عقدة في مجموعتك. من ناحية أخرى، يجب تثبيت الدعامة على عقدة واحدة فقط في المجموعة بأكملها.

Riak Cloud Storage. الجزء 1. إعداد Riak KV

الواجهات الخلفية لـ Riak CS

الواجهة الخلفية الافتراضية التي تستخدمها Riak هي Bitcask، لكن حزمة Riak CS تتضمن واجهة خلفية خاصة يجب أن تستخدمها مجموعة Riak التي تعد جزءًا من نظام Riak CS. يحتوي الإصدار العادي على الواجهة الخلفية المتعددة القياسية التي تأتي مع Riak.

تستخدم نفس مستودعات Riak المستخدمة داخل Riak CS فهارس ثانوية، والتي تتطلب الآن واجهة LevelDB الخلفية. يمكن لأجزاء أخرى من نظام Riak CS الاستفادة من استخدام الواجهة الخلفية لـ Bticask. يتم تضمين استخدام نموذج الواجهة الخلفية المتعددة في Riak CS للاستفادة من هاتين الواجهتين الخلفيتين لتحقيق أفضل مزيج من الأداء والوظيفة. يصف القسم التالي كيفية تكوين Riak بشكل صحيح لاستخدام هذه الواجهة الخلفية المتعددة.

الخلفية هو ما سيستخدمه رياك لحفظ البيانات. تمتلك Riak KV العديد من الواجهات الخلفية في ترسانتها: Bitcask، وLevelDB، وMemory، وMulti.

بالإضافة إلى ذلك، يستخدم نظام حساب التخزين Riak MapReduse لتجميع الملفات في مجموعات. هذا يعني أنه يجب عليك إخبار جميع عقد Riak بمكان البحث عن ملفات Riak CS المعدة قبل حساب التخزين.

يجب تغيير العديد من المعلمات الأخرى لتكوين عقدة Riak كجزء من نظام Riak CS، مثل عنوان IP وعنوان IP ومنفذ المراسلة من خلال مخازن البروتوكول المؤقتة. يمكن تغيير الإعدادات الأخرى إذا لزم الأمر. تصف الأقسام التالية كيفية تكوين عقدة Riak لتعمل كجزء من نظام Riak CS.

إعداد الواجهة الخلفية لـ Riak

أولاً، يتم تحرير ملفات التكوين riak.conf أو Advanced.config/app.config. يمكن وضع هذه الملفات في المجلدات /etc/riak أو /opt/riak/etc. بشكل افتراضي، يستخدم Riak الواجهة الخلفية لـ Bitcask. أول شيء يتعين علينا القيام به هو تغيير ملف التكوين عن طريق إزالة السطر التالي:

رياك.كونف

## Delete this line:
storage_backend = bitcask

التكوين المتقدم

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

تكوين

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

بعد ذلك، نحتاج إلى توضيح الحاجة إلى وحدات RiakCS لـ Riak وتوجيه Riak لاستخدام الواجهة الخلفية التي تم تكوينها والتي توفر Riak CS. نحتاج إلى استخدام ملف Advanced.config أو 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
]}

تكوين

{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
]}

من المهم جدًا ملاحظة أن العديد من هذه القيم ستعتمد على اختلافات الدليل الخاصة بنظام التشغيل الخاص بك، لذا اتبع التعليمات وفقًا لذلك. على سبيل المثال، يفترض خيار add_paths أن Riak CS مثبت في /usr/lib/riak-cs، بينما تفترض خيارات data_root أن Riak مثبت في /var/lib. (ملاحظة: في حالتي كان add_paths - /usr/lib64/riak-cs/).

يفترض هذا التكوين أن Riak CS مثبت على نفس الجهاز مثل Riak. إذا لم يكن الأمر كذلك، فيجب نسخ الحزمة إلى مضيف منفصل.

إعداد خلق الأخوة

الآن، نحن بحاجة إلى تعيين المعلمةallow_mult إلى صحيح. يمكننا إضافة سطر في ملف التكوين riak.conf، أو قسم riak_core في Advanced.config أو app.config.

رياك.كونف

buckets.default.allow_mult = true

التكوين المتقدم

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

تكوين

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

سيسمح هذا لـ Riak بإنشاء الأشقاء الضروريين لعمل Riak CS. إذا قمت بالاتصال بـ Riak CS باستخدام مكتبة العميل، فلا تقلق: لن تضطر إلى حل التعارضات، نظرًا لأن جميع عمليات Riak CS متسقة تمامًا كما هو محدد.

أخ أو أخت هي طريقة لتخزين كائنات متعددة في مفتاح واحد بحيث يكون للكائن قيم مختلفة على عقد مختلفة.

ملحوظة:allow_mult
أي عقدة Riak التي تدعم أيضًا Riak CS سيتم تعيينallow_mult على القيمة true في جميع الأوقات. سيقوم Riak CS بإعادة ضبط الإطلاق إذا كانت القيمة خاطئة.

تحديد اسم المضيف وعنوان IP

كل عقدة Riak لها اسم يمكن تحديده في خيار Nodename الموجود في riak.conf. إذا كنت تستخدم ملف التكوين app.config، فستحتاج إلى إنشاء ملف يسمى vm.args في نفس الدليل مثل app.config وتحديد اسم المضيف باستخدام علامة -name. نوصي بتحديد أسماء العقد بالتنسيق @. وبالتالي، إذا كان لديك ثلاث عقد تعمل على مضيف واحد 100.0.0.1، فيمكنك الاتصال بها [البريد الإلكتروني محمي], [البريد الإلكتروني محمي]و [البريد الإلكتروني محمي] أو يمكنك إعطاء أسماء أكثر تحديدًا، مثل [البريد الإلكتروني محمي], [البريد الإلكتروني محمي] وما إلى ذلك وهلم جرا. يوضح المثال أدناه تغيير اسم المضيف إلى [البريد الإلكتروني محمي]، والذي سيتم تشغيله على المضيف المحلي.

رياك.كونف

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

يجب عليك تسمية جميع العقد قبل بدء تشغيلها والانضمام إلى المجموعة.

اختبار الإعداد

الآن بعد أن تم الانتهاء من جميع إعدادات العقدة الضرورية، يمكننا محاولة تشغيل Riak:

SHELL

 riak start 

ملحوظة الجواب في حالتي:

Riak Cloud Storage. الجزء 1. إعداد Riak KV

هنا عليك الانتظار قليلا. ثم يمكنك البدء في اختبار العقدة قيد التشغيل.

SHELL

 riak ping

إذا كانت الاستجابة هي pong، فهذا يعني أن Riak قيد التشغيل؛ وإذا كانت الاستجابة هي Node لا تستجيب لأصوات ping، فهذا يعني أن هناك خطأ ما.

ملحوظة الجواب في حالتي:

Riak Cloud Storage. الجزء 1. إعداد Riak KV

إذا لم تبدأ العقدة بشكل صحيح، فاطلع على سجل erlang.log.1 في الدليل /log الخاص بالعقدة إذا كان من الممكن تحديد المشكلة. أحد الأخطاء الأكثر شيوعًا هو valid_storage_backend. مما يشير إلى أن المسار إلى مكتبة Riak CS في Advanced.config أو app.config غير صحيح (أو لم يتم تثبيت Riak CS على الخادم). بالرغم من هذا الخطأ، تأكد من عدم التغيير من riak_cs_kv_multi_backend إلى riak_kv_multi_backend.

تكوين Riak لاستخدام المخازن المؤقتة للبروتوكول

توجد إعدادات المخزن المؤقت لبروتوكول Riak في riak.conf أو في قسم riak_api في ملفات Advanced.config أو app.config، الموجودة في الدليل /etc/riak/. افتراضيًا، يمتلك المضيف عنوان IP هو 127.0.0.1 والمنفذ 8087. وستحتاج إلى تغيير هذين العنوانين إذا كنت تخطط لتشغيل Riak وRiak CS في بيئة غير محلية. استبدل 127.0.0.1 بعنوان IP الخاص بمضيف Riak والمنفذ 8087 بعنوان مناسب.

رياك.كونف

 listener.protobuf.internal = 10.0.2.10:10001

ADVANCED.CONF

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

تكوين

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

ملاحظة:يجب أن تتطابق قيمة المعلمة استمع.protobuf.internal في ملف riak.conf (أو قيمة المعلمة pb في ملف Advanced.conf/app.config) مع قيم riak_host في Riak CS riak-cs.config و Stanchion stanchion.conf (أو riak_host على التوالي في ملفات .config/app.config المتقدمة).

ملاحظة حول رقم المنفذ
قد تكون هناك حاجة إلى رقم منفذ مختلف إذا كان المنفذ يتعارض مع المنافذ المستخدمة بواسطة تطبيق آخر أو إذا كنت تستخدم موازن التحميل أو خادم وكيل.

من المستحسن أيضًا أن يتأكد المستخدمون من أن حجم Riak protobuf.backlog (أو في ملفات Advanced.config/app.config هو pb_backlog) يساوي أو أكبر من حجم Pool.request.size المحدد لـ Riak CS في riak-cs. config (أو request_pool_size في ملفات Advanced.config/ app.conf).

إذا تم تغيير قيمة Pool.request.size في Riak CS، فيجب أيضًا تحديث قيمة protobuf.backlog في Riak.

إعدادات رياك الأخرى

تشتمل ملفات riak.conf وadvanced.config على إعدادات أخرى تقوم بتكوين إنشاء ملفات السجل ومكان حفظها. تحتوي هذه الإعدادات على قيم افتراضية ويجب أن تعمل في معظم الحالات. لمزيد من المعلومات، نوصي بقراءة وثائقنا حول ملفات التكوين.

إعداد عنوان IP لـ Riak

عند إعداد عنوان IP لـ Riak، يجب التأكد من أن عقد Riak لها عنوان IP فريد، سواء كنت تعمل مع عقدة واحدة فقط أو تضيف المزيد من العقد إلى النظام. عنوان Riak IP موجود في riak.conf أو - إذا كنت تستخدم ملف app.config - في ملف التكوين vm.args، الموجود هناك في الدليل /etc/riak (أو /opt/riak/etc/ على أنظمة التشغيل الأخرى).

في البداية، يشير السطر الذي يحتوي على عنوان Riak IP إلى المضيف المحلي في هذا الموقع:

رياك.كونف

 nodename = [email protected]

VM.ARGS

 -name [email protected]

استبدل 127.0.0.1 بعنوان IP المفضل لديك أو اسم المضيف لعقدة Riak.

إعدادات الأداء وعرض النطاق الترددي

لأسباب تتعلق بالأداء، نوصي بشدة بإضافة قيم إلى ملفات تكوين Riak riak.conf أو vm.args، الموجودة في الدليل /etc/riak/ أو /opt/riak/etc.

رياك.كونف

 erlang.max_ports = 65536

VM.ARGS

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

تعطيل جافا سكريبت MapReduce

يوصى بعدم استخدام JavaScript MapReduce القديم مع أي إصدار من Riak CS. لأسباب تتعلق بالأداء، يجب عليك تعطيل الجهاز الظاهري الذي يقوم بعمليات JavaScript MapReduce عن طريق الإعداد في ملف التكوين riak.conf، أو في قسم riak_kv في Advanced.conf أو app.config:

رياك.كونف

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

التكوين المتقدم

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

تكوين

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

بعد ذلك نحتاج إلى تكوين المكونات المتبقية لنظام Riak CS.

الدليل الأصلي.

المصدر: www.habr.com

إضافة تعليق