Riak کلاؤڈ اسٹوریج۔ حصہ 1: Riak KV ترتیب دینا

Riak CS (کلاؤڈ اسٹوریج) - آبجیکٹ اسٹوریج کو منظم کرنے کے لیے استعمال میں آسان سافٹ ویئر، Riak KV کے اوپر چل رہا ہے۔ Riak (KV) ایک تقسیم شدہ NoSQL کلیدی قدر کا ڈیٹا بیس ہے۔ Riak CS کو سادگی، دستیابی، کسی بھی پیمانے کے کلاؤڈ اسٹوریج کی تقسیم فراہم کرنے کے لیے ڈیزائن کیا گیا ہے، اور اسے کلاؤڈ آرکیٹیکچرز - پبلک اور پرائیویٹ دونوں - یا انتہائی بھری ہوئی ایپلی کیشنز اور خدمات کے لیے انفراسٹرکچر اسٹوریج کے طور پر استعمال کیا جا سکتا ہے۔ Riak CS API Amazon S3 کے ساتھ مطابقت رکھتا ہے اور مختلف حالات پر رپورٹس وصول کرنے کی صلاحیت کو سپورٹ کرتا ہے۔

Riak کلاؤڈ اسٹوریج۔ حصہ 1: Riak KV ترتیب دینا
یہ مضمون Riak CS سسٹم ورژن 2.1.1 کے آفیشل مینوئل کا مفت ترجمہ ہے۔

Riak CS سٹوریج سسٹم میں، تین اجزاء ایک دوسرے کے ساتھ مل کر کام کرتے ہیں، جس کا مطلب ہے کہ ہر جزو کو دوسرے اجزاء کے ساتھ کام کرنے کے لیے ترتیب دیا جانا چاہیے:

  • Riak (KV) - ایک ڈیٹا بیس سسٹم جو اختتامی نظام کے طور پر کام کرتا ہے۔
  • Riak CS - Riak کے اوپر ایک کلاؤڈ سٹوریج کی تہہ جو سٹوریج اور API کی صلاحیتیں فراہم کرتی ہے، Riak میں فائلز اور میٹا ڈیٹا کو اسٹور کرتی ہے، اور پھر انہیں آخری صارفین میں تقسیم کرتی ہے۔
  • سٹینچین۔ - عالمی سطح پر منفرد ہستیوں جیسے کہ بکٹس اور Riak مثال میں صارفین سے متعلق سوالات کا انتظام کرتا ہے۔ مثال کے طور پر، صارف بنانا، بالٹی بنانا یا حذف کرنا۔

مزید برآں، آپ Riak CS سسٹم کے ساتھ پیغام رسانی میں استعمال کے لیے S3 کلائنٹ کو بھی ترتیب دے سکتے ہیں۔

آپ کو اپنے سسٹم پر ہر Riak CS نوڈ کے لیے ایک Riak نوڈ رکھنے کا منصوبہ بنانا چاہیے۔ Riak اور Riak CS نوڈس کو مختلف فزیکل مشینوں پر چلایا جا سکتا ہے، لیکن زیادہ تر معاملات میں ایک Riak node اور ایک Riak CS نوڈ کو ایک ہی فزیکل مشین پر چلانا افضل ہے۔ فرض کریں کہ ایک فزیکل مشین میں Riak اور Riak CS دونوں نوڈس کی ضروریات کو پورا کرنے کے لیے کافی طاقت ہے، آپ عام طور پر نیٹ ورک میں تاخیر کی وجہ سے بہتر کارکردگی دیکھیں گے۔

اگر آپ کا سسٹم کئی نوڈس پر مشتمل ہے تو، کنفیگریشن بنیادی طور پر اجزاء کے درمیان مواصلت قائم کرنے کے بارے میں ہے۔ دوسری سیٹنگز، جیسے کہ لاگ فائلز کو کہاں اسٹور کیا جائے گا، کی ڈیفالٹ ویلیوز ہوتی ہیں اور صرف اس صورت میں تبدیل کرنے کی ضرورت ہوتی ہے جب آپ غیر معیاری اقدار استعمال کرنا چاہتے ہیں۔

سسٹم کے اجزاء کو ترتیب دینا۔ CS کے لیے Riak KV ترتیب دینا

چونکہ Riak CS ایک ایپلی کیشن ہے جو Riak کے اوپر بنائی گئی ہے، اس لیے Riak CS چلاتے وقت اپنی Riak کی ترتیب پر توجہ دینا بہت ضروری ہے۔ یہ دستاویز ایک Riak کنفیگریشن گائیڈ اور ایک حوالہ دستاویز دونوں ہے جو کنفیگریشن کے اہم پیرامیٹرز کو بیان کرتی ہے۔

سیٹ اپ سے پہلے، یقینی بنائیں کہ Riak KV اور Riak CS آپ کے کلسٹر کے ہر نوڈ پر انسٹال ہیں۔ دوسری طرف سٹینچین کو پورے کلسٹر میں صرف ایک نوڈ پر انسٹال کیا جانا چاہیے۔

Riak کلاؤڈ اسٹوریج۔ حصہ 1: Riak KV ترتیب دینا

Riak CS کے لیے بیک اینڈز

Riak کے ذریعے استعمال ہونے والا ڈیفالٹ بیک اینڈ بٹ کاسک ہے، لیکن Riak CS پیکیج میں ایک خاص بیک اینڈ شامل ہے جو Riak CS سسٹم کا حصہ ہے Riak کلسٹر کے ذریعے استعمال کیا جانا چاہیے۔ ریگولر ورژن میں معیاری ملٹی بیک اینڈ ہے جو Riak کے ساتھ آتا ہے۔

Riak CS کے اندر استعمال ہونے والی وہی Riak بالٹیاں سیکنڈری انڈیکس استعمال کرتی ہیں، جن کے لیے اب LevelDB بیک اینڈ کی ضرورت ہوتی ہے۔ Riak CS سسٹم کے دیگر حصے Bticask پسدید کے استعمال سے فائدہ اٹھا سکتے ہیں۔ کارکردگی اور فعالیت کے بہترین امتزاج کو حاصل کرنے کے لیے ان دونوں بیک اینڈز سے فائدہ اٹھانے کے لیے سیمپل ملٹی بیک اینڈ کا استعمال Riak CS میں شامل ہے۔ اگلا حصہ بیان کرتا ہے کہ اس ملٹی بیک اینڈ کو استعمال کرنے کے لیے Riak کو صحیح طریقے سے کنفیگر کرنے کا طریقہ۔

بیک اینڈ Riak ڈیٹا کو بچانے کے لیے استعمال کرے گا۔ Riak KV کے ہتھیاروں میں کئی بیک اینڈز ہیں: بٹ کاسک، لیول ڈی بی، میموری اور ملٹی۔

مزید برآں، اسٹوریج کیلکولیشن سسٹم فائلوں کو بالٹی میں جمع کرنے کے لیے Riak MapReduse کا استعمال کرتا ہے۔ اس کا مطلب ہے کہ آپ کو تمام Riak نوڈس کو بتانا چاہیے کہ کمپیوٹنگ اسٹوریج سے پہلے Riak CS فائلوں کو کہاں تلاش کرنا ہے۔

Riak CS سسٹم کے حصے کے طور پر Riak نوڈ کو ترتیب دینے کے لیے کئی دوسرے پیرامیٹرز کو تبدیل کرنا ضروری ہے، جیسے کہ IP ایڈریس اور IP ایڈریس اور پروٹوکول بفرز کے ذریعے پیغام رسانی کے لیے پورٹ۔ اگر ضروری ہو تو دوسری ترتیبات کو تبدیل کیا جاسکتا ہے۔ درج ذیل حصے بیان کرتے ہیں کہ Riak CS سسٹم کے حصے کے طور پر کام کرنے کے لیے Riak نوڈ کو کیسے ترتیب دیا جائے۔

Riak پسدید ترتیب دے رہا ہے۔

سب سے پہلے، riak.conf یا advanced.config/app.config کنفیگریشن فائلوں میں ترمیم کی جاتی ہے۔ یہ فائلیں /etc/riak یا /opt/riak/etc ڈائریکٹریز میں واقع ہوسکتی ہیں۔ پہلے سے طے شدہ طور پر، Riak Bitcask بیک اینڈ استعمال کرتا ہے۔ سب سے پہلے ہمیں مندرجہ ذیل لائن کو ہٹا کر کنفیگریشن فائل کو تبدیل کرنے کی ضرورت ہے۔

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

اس کے بعد، ہمیں Riak کے لیے RiakCS ماڈیولز کی ضرورت کو ظاہر کرنے کی ضرورت ہے اور Riak کو Riak CS فراہم کرنے والے کنفیگرڈ بیک اینڈ کو استعمال کرنے کی ہدایت کرنی ہوگی۔ ہمیں اس کے لیے Advanced.config یا app.config فائل استعمال کرنے کی ضرورت ہے اور درج ذیل آپشنز شامل کرنا ہوں گے۔

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

یہ نوٹ کرنا بہت ضروری ہے کہ ان میں سے بہت سی اقدار آپ کے آپریٹنگ سسٹم کے لیے مخصوص ڈائرکٹری کے تغیرات پر منحصر ہوں گی، اس لیے اس کے مطابق ہدایات پر عمل کریں۔ مثال کے طور پر، add_paths آپشن فرض کرتا ہے کہ Riak CS /usr/lib/riak-cs میں انسٹال ہے، جب کہ data_root کے اختیارات فرض کرتے ہیں کہ Riak /var/lib میں انسٹال ہے۔ (نوٹ: میرے معاملے میں یہ add_paths - /usr/lib64/riak-cs/) تھا۔

یہ کنفیگریشن فرض کرتی ہے کہ Riak CS اسی مشین پر نصب ہے جس پر Riak ہے۔ اگر نہیں، تو پیکج کو علیحدہ میزبان میں کاپی کرنے کی ضرورت ہے۔

بہن بھائی کی تخلیق کو ترتیب دینا

اب، ہمیں اجازت_ملٹ پیرامیٹر کو درست کرنے کی ضرورت ہے۔ ہم riak.conf کنفیگریشن فائل میں ایک لائن شامل کر سکتے ہیں، یا Advanced.config یا app.config میں riak_core سیکشن شامل کر سکتے ہیں۔

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

یہ Riak کو بہن بھائی بنانے کی اجازت دے گا جو Riak CS کے کام کرنے کے لیے ضروری ہیں۔ اگر آپ کلائنٹ لائبریری کا استعمال کرتے ہوئے Riak CS سے جڑتے ہیں، تو پریشان نہ ہوں: آپ کو تنازعات کو حل کرنے کی ضرورت نہیں ہوگی، کیونکہ Riak CS کے تمام آپریشنز وضاحت کے مطابق سختی سے مطابقت رکھتے ہیں۔

بہن بھائی ایک کلید میں متعدد اشیاء کو ذخیرہ کرنے کا ایک طریقہ ہے تاکہ آبجیکٹ کی مختلف نوڈس پر مختلف اقدار ہوں۔

نوٹ: allow_mult
کوئی بھی Riak نوڈ جو Riak CS کو بھی سپورٹ کرتا ہے اس کے پاس اجازت_ملٹ ہر وقت درست پر سیٹ ہوگا۔ اگر قیمت غلط ہے تو Riak CS لانچ کو دوبارہ ترتیب دے گا۔

میزبان نام اور IP ایڈریس سیٹ کرنا

ہر Riak نوڈ کا ایک نام ہوتا ہے، جسے riak.conf میں nodename آپشن میں بیان کیا جا سکتا ہے۔ اگر آپ app.config کنفیگریشن فائل استعمال کر رہے ہیں، تو آپ کو app.config جیسی ڈائرکٹری میں vm.args نامی فائل بنانے کی ضرورت ہے اور -name پرچم کا استعمال کرتے ہوئے میزبان کا نام بتانا ہوگا۔ ہم @ فارمیٹ میں نوڈ کے نام بتانے کی تجویز کرتے ہیں۔ اور اس طرح اگر آپ کے پاس ایک میزبان 100.0.0.1 پر تین نوڈس چل رہے ہیں، تو آپ انہیں کال کر سکتے ہیں۔ [ای میل محفوظ], [ای میل محفوظ]اور [ای میل محفوظ] یا آپ مزید مخصوص نام دے سکتے ہیں، جیسے [ای میل محفوظ], [ای میل محفوظ] اور اسی طرح. ذیل کی مثال میزبان کے نام کو تبدیل کرنے کو ظاہر کرتی ہے۔ [ای میل محفوظ]، جو لوکل ہوسٹ پر چلے گا۔

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

آپ کو تمام نوڈس کو شروع کرنے اور کلسٹر میں شامل ہونے سے پہلے ان کا نام دینا چاہیے۔

سیٹ اپ ٹیسٹ

اب جب کہ تمام ضروری نوڈ سیٹنگز مکمل ہو چکی ہیں، ہم Riak کو لانچ کرنے کی کوشش کر سکتے ہیں:

شیل

 riak start 

نوٹ میرے معاملے میں جواب:

Riak کلاؤڈ اسٹوریج۔ حصہ 1: Riak KV ترتیب دینا

یہاں آپ کو تھوڑا انتظار کرنا ہوگا۔ پھر آپ چلانے والے نوڈ کی جانچ شروع کر سکتے ہیں۔

شیل

 riak ping

اگر جواب پونگ ہے، تو Riak چل رہا ہے؛ اگر جواب ہے Node pings کا جواب نہیں دے رہا ہے، تو کچھ غلط ہو گیا۔

نوٹ میرے معاملے میں جواب:

Riak کلاؤڈ اسٹوریج۔ حصہ 1: Riak KV ترتیب دینا

اگر نوڈ صحیح طریقے سے شروع نہیں ہوا تو، نوڈ کی /log ڈائرکٹری میں erlang.log.1 لاگ کو دیکھیں اگر مسئلہ کی نشاندہی کی جا سکتی ہے۔ سب سے عام غلطیوں میں سے ایک invalid_storage_backend ہے۔ جس سے ظاہر ہوتا ہے کہ Advanced.config یا app.config میں Riak CS لائبریری کا راستہ غلط ہے (یا Riak CS سرور پر انسٹال نہیں ہے)۔ اس خرابی کے باوجود، یقینی بنائیں کہ آپ نے riak_cs_kv_multi_backend سے riak_kv_multi_backend میں تبدیل نہیں کیا ہے۔

پروٹوکول بفرز استعمال کرنے کے لیے Riak کو ترتیب دینا

Riak پروٹوکول بفر سیٹنگز riak.conf میں یا riak_api سیکشن ایڈوانسڈ.config یا app.config فائلوں میں واقع ہیں، جو /etc/riak/ ڈائرکٹری میں موجود ہیں۔ پہلے سے طے شدہ طور پر، میزبان کا IP ایڈریس 127.0.0.1 اور پورٹ 8087 ہے۔ اگر آپ Riak اور Riak CS کو غیر مقامی ماحول میں چلانے کا ارادہ رکھتے ہیں تو آپ کو ان کو تبدیل کرنے کی ضرورت ہوگی۔ 127.0.0.1 کو Riak ہوسٹ آئی پی ایڈریس اور پورٹ 8087 کو کسی مناسب سے بدل دیں۔

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

نوٹ:riak.conf (یا advanced.conf/app.config میں pb پیرامیٹر کی قدر) میں listener.protobuf.internal پیرامیٹر کی قدر Riak CS riak-cs.config میں riak_host کی اقدار سے مماثل ہونی چاہیے اور Stanchion stanchion.conf (یا riak_host بالترتیب اعلی درجے کی .config/app.config) فائلوں میں۔

پورٹ نمبر کے بارے میں ایک نوٹ
ایک مختلف پورٹ نمبر درکار ہو سکتا ہے اگر پورٹ کسی اور ایپلیکیشن کے ذریعے استعمال ہونے والی بندرگاہوں سے متصادم ہو یا اگر آپ لوڈ بیلنسر یا پراکسی سرور استعمال کر رہے ہوں۔

یہ بھی تجویز کیا جاتا ہے کہ صارفین اس بات کو یقینی بنائیں کہ Riak protobuf.backlog سائز (یا advanced.config/app.config فائلوں میں یہ pb_backlog ہے) Riak-cs میں Riak CS کے لیے مخصوص کردہ pool.request.size کے برابر یا اس سے زیادہ ہے۔ config (یا advanced.config/ app.conf فائلوں میں request_pool_size)۔

اگر Riak CS میں pool.request.size کی قدر کو تبدیل کر دیا گیا ہے، تو protobuf.backlog کی قدر کو بھی Riak میں اپ ڈیٹ کرنا ضروری ہے۔

دیگر Riak کی ترتیبات

riak.conf اور advanced.config فائلوں میں دوسری سیٹنگز شامل ہوتی ہیں جو لاگ فائلوں کی تخلیق اور ان کو کہاں محفوظ کیا جاتا ہے۔ ان ترتیبات میں پہلے سے طے شدہ اقدار ہیں اور زیادہ تر معاملات میں کام کرنا چاہئے۔ مزید معلومات کے لیے، ہم کنفیگریشن فائلوں کے بارے میں ہماری دستاویزات کو پڑھنے کی تجویز کرتے ہیں۔

Riak کے لیے ایک IP ایڈریس ترتیب دینا

Riak کے لیے ایک IP ایڈریس ترتیب دیتے وقت، آپ کو اس بات کا یقین ہونا چاہیے کہ Riak نوڈس کا ایک منفرد IP ایڈریس ہے، چاہے آپ صرف ایک نوڈ کے ساتھ کام کر رہے ہوں یا سسٹم میں مزید نوڈس شامل کر رہے ہوں۔ Riak IP ایڈریس riak.conf میں موجود ہے یا - اگر آپ app.config فائل استعمال کر رہے ہیں - vm.args کنفیگریشن فائل میں، جو وہاں موجود ہے /etc/riak ڈائریکٹری (یا /opt/riak/etc/) دوسرے آپریٹنگ سسٹمز پر)۔

ابتدائی طور پر، Riak IP ایڈریس پر مشتمل لائن اس مقام پر لوکل ہوسٹ کی طرف اشارہ کرتی ہے:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

127.0.0.1 کو اپنے پسندیدہ IP ایڈریس یا Riak نوڈ کے میزبان نام سے تبدیل کریں۔

کارکردگی اور بینڈوتھ کی ترتیبات

کارکردگی کی وجوہات کی بناء پر، ہم Riak کنفیگریشن فائلوں riak.conf یا vm.args میں قدریں شامل کرنے کی سختی سے سفارش کرتے ہیں، جو /etc/riak/ یا /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

JavaScript MapReduce کو غیر فعال کرنا

Riak CS کے کسی بھی ورژن کے ساتھ Legacy JavaScript MapReduce استعمال نہ کرنے کی سفارش کی جاتی ہے۔ کارکردگی کی وجوہات کی بناء پر، آپ کو riak.conf کنفیگریشن فائل، یا advanced.conf یا app.config کے riak_kv سیکشن میں ترتیب دے کر JavaScript MapReduce آپریشنز کرنے والی ورچوئل مشین کو غیر فعال کر دینا چاہیے:

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

اس کے بعد ہمیں Riak CS سسٹم کے باقی اجزاء کو ترتیب دینے کی ضرورت ہے۔

اصل دستی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں