افزودن پشتیبانی از قفسه Cassandra

این بخش راهنمایی‌های کلی برای مقیاس‌بندی عملیات Cassandra با آگاه کردن Cassandra در Apigee Edge for Private Cloud از قفسه ارائه می‌دهد.

برای کسب اطلاعات بیشتر درباره اینکه چرا آگاه کردن قفسه زنگ Cassandra مهم است، به منابع زیر مراجعه کنید:

قفسه چیست؟

قفسه Cassandra گروه‌بندی منطقی گره‌های Cassandra در حلقه است. ‫Cassandra از قفسه‌ها استفاده می‌کند تا مطمئن شود رونوشت‌ها بین گروه‌های منطقی مختلف توزیع می‌شوند. درنتیجه، عملیات‌ها نه فقط به یک گره، بلکه به چندین گره ارسال می‌شوند که هرکدام در یک قفسه جداگانه قرار دارند و این امر باعث افزایش تحمل خطا و دردسترس‌پذیری می‌شود.

مثال‌های این بخش از سه قفسه Cassandra استفاده می‌کنند که تعداد قفسه‌هایی است که Apigee در توپولوژی‌های تولید پشتیبانی می‌کند.

نصب پیش‌فرض Cassandra در Apigee Edge for Private Cloud یک قفسه منطقی واحد را فرض می‌کند و همه گره‌ها را در یک مرکز داده در آن قرار می‌دهد. اگرچه نصب و مدیریت این پیکربندی ساده است، اگر عملیاتی در یکی از این گره‌ها ناموفق باشد، این پیکربندی مستعد خرابی است.

تصویر زیر پیکربندی پیش‌فرض حلقه Cassandra را نشان می‌دهد:

‫۱ قفسه با ۳ گره
(شکل ۱) پیکربندی پیش‌فرض: همه گره‌ها در یک قفسه

در پیکربندی قوی‌تر، هر گره به یک قفسه جداگانه اختصاص داده می‌شود و عملیات نیز روی رونوشت‌ها در هریک از آن قفسه‌ها اجرا می‌شود.

تصویر زیر یک حلقه ۳ گره‌ای را نشان می‌دهد. این تصویر ترتیب تکثیر عملیات در حلقه (در جهت عقربه‌های ساعت) را نشان می‌دهد و این واقعیت را برجسته می‌کند که هیچ دو گره‌ای در یک قفسه نیستند:

‫۳ قفسه، با ۱ گره در هر قفسه
(شکل ۲) پیکربندی آگاه از قفسه: سه گره، یکی در هر قفسه

در این پیکربندی، عملیات‌ها به گرهی ارسال می‌شوند اما به رونوشت‌های آن گره نیز در قفسه‌های دیگر (به‌ترتیب ساعت‌گرد) ارسال می‌شوند.

افزودن آگاهی از قفسه (با ۳ گره)

همه توپولوژی‌های نصب تولید Apigee Edge for Private Cloud حداقل سه گره Cassandra دارند که این بخش از آن‌ها با نام‌های «IP1»، «IP2»، و «IP3» یاد می‌کند. به‌طور پیش‌فرض، هریک از این گره‌ها در قفسه یکسانی، «ra-1»، قرار دارد.

این بخش نحوه اختصاص دادن گره‌های Cassandra به قفسه‌های جداگانه را توضیح می‌دهد تا همه عملیات‌ها به گره‌های رونوشت در گروه‌های منطقی جداگانه در حلقه ارسال شوند.

برای اختصاص دادن گره‌های Cassandra به قفسه‌های مختلف درطول نصب:

  1. قبل‌از اجرای نصب‌کننده، وارد گره Cassandra شوید و فایل پیکربندی بی‌صدای زیر را برای ویرایش باز کنید:
    /opt/silent.conf

    اگر فایل وجود ندارد آن را ایجاد کنید و مطمئن شوید که کاربر «apigee» را مالک کنید.

  2. دارایی CASS_HOSTS را ویرایش کنید، فهرست نشانی‌های IP جداشده با فاصله (نه ورودی‌های ساناد یا نام میزبان) که از نحو زیر استفاده می‌کند:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    مقدار پیش‌فرض حلقه Cassandra سه‌گره‌ای است که هر گره به قفسه ۱ و مرکز داده ۱ اختصاص داده شده است، همان‌طور که در مثال زیر نشان داده شده است:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. تخصیص‌های قفسه را تغییر دهید تا گره ۲ به قفسه ۲ و گره ۳ به قفسه ۳ اختصاص داده شود، همان‌طور که در مثال زیر نشان داده شده است:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    با تغییر دادن تخصیص‌های قفسه، به Cassandra دستور می‌دهید دو گروه منطقی اضافی (قفسه) ایجاد کند که سپس نسخه‌های تکراری‌ای را ارائه می‌کنند که همه عملیات دریافتی توسط گره اول را دریافت می‌کنند.

    برای اطلاعات بیشتر درباره استفاده از دارایی پیکربندی CASS_HOSTS، به مرجع فایل پیکربندی Edge مراجعه کنید.

  4. تغییرات را در فایل پیکربندی ذخیره کنید و دستور زیر را برای نصب Cassandra با پیکربندی به‌روزرسانی‌شده اجرا کنید:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    برای مثال:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. این رویه را برای هر گره Cassandra در حلقه، به ترتیبی که گره‌ها در دارایی CASS_HOSTS اختصاص داده شده‌اند، تکرار کنید. در این مورد، باید Cassandra را به ترتیب زیر نصب کنید:
    1. گره ۱ (IP1)
    2. گره ۲ (IP2)
    3. Node 3 (IP3)

پس‌از نصب، باید پیکربندی Cassandra را بررسی کنید.

پیکربندی Cassandra را بررسی کنید

پس‌از نصب پیکربندی Cassandra آگاه به قفسه، می‌توانید بااستفاده از فرمان nodetool status بررسی کنید که گره‌ها به قفسه‌های مختلف اختصاص داده شده‌اند، همان‌طور که مثال زیر نشان می‌دهد:

/opt/apigee/apigee-cassandra/bin/nodetool status

(این فرمان را در یکی از گره‌های Cassandra اجرا می‌کنید.)

نتایج باید شبیه به موارد زیر باشد، جایی که ستون Rack شناسه‌های قفسه مختلف را برای هر گره نشان می‌دهد:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

اگر اصالت‌سنجی JMX را برای Cassandra فعال کرده‌اید، باید نام کاربری و گذرواژه‌تان را نیز به nodetool ارسال کنید. برای اطلاعات بیشتر، به استفاده از nodetool برای مدیریت گره‌های خوشه مراجعه کنید.

نصب حلقه شش‌گره‌ای

برای افزونگی بیشتر، می‌توانید حلقه Cassandra را به شش گره گسترش دهید. در این مورد، شما دو گره را به هریک از سه قفسه اختصاص می‌دهید. این پیکربندی به سه گره دیگر نیاز دارد: گره ۴ (IP4)، گره ۵ (IP5)، و گره ۶ (IP6).

تصویر زیر ترتیب تکثیر عملیات در حلقه را نشان می‌دهد (در جهت عقربه‌های ساعت) و این واقعیت را برجسته می‌کند که درطول تکثیر، هیچ دو گره مجاوری در یک قفسه نیستند:

‫۳ قفسه، با ۲ گره در هر قفسه
(شکل ۳) حلقه ۶ گرهی Cassandra: دو گره در هریک از سه قفسه

در این پیکربندی، هر گره دو نسخه دیگر دارد: یکی در هریک از دو قفسه دیگر. برای مثال، گره ۱ در قفسه ۱ در قفسه ۲ و قفسه ۳ رونوشت دارد. عملیات ارسال‌شده به گره ۱ نیز به نسخه‌های تکراری در قفسه‌های دیگر، به‌ترتیب ساعت‌گرد، ارسال می‌شود.

برای گسترش حلقه سه‌گره‌ای Cassandra به حلقه شش‌گره‌ای Cassandra، گره‌ها را به روش زیر در فایل پیکربندی بی‌صدا پیکربندی کنید:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

همانند حلقه سه‌گره‌ای، باید Cassandra را به همان ترتیبی که گره‌ها در دارایی CASS_HOSTS ظاهر می‌شوند نصب کنید:

  1. گره ۱ (IP1)
  2. Node 4 (IP4)*
  3. گره ۲ (IP2)
  4. Node 5 (IP5)
  5. Node 3 (IP3)
  6. Node 6 (IP6)

* تغییرات را در فایل پیکربندی بی‌صدا قبل‌از اجرای ابزار تنظیم در گره چهارم (دومین ماشین در ترتیب نصب Cassandra) اعمال کنید.

ازهم بازکردن تا ۱۲ گره

برای افزایش بیشتر تحمل خطا و دردسترس بودن، می‌توانید تعداد گره‌های Cassandra در حلقه را از شش به ۱۲ افزایش دهید. این پیکربندی به شش گره دیگر (IP7 تا IP12) نیاز دارد.

تصویر زیر ترتیب تکثیر عملیات در حلقه را نشان می‌دهد (در جهت عقربه‌های ساعت) و این واقعیت را برجسته می‌کند که درطول تکثیر، هیچ دو گره مجاوری در یک قفسه نیستند:

‫۳ قفسه، با ۴ گره در هر قفسه
(شکل ۴) حلقه ۱۲ گرهی Cassandra: چهار گره در هریک از سه قفسه

روش نصب حلقه ۱۲ گره‌ای مشابه نصب حلقه سه یا شش گره‌ای است: CASS_HOSTS را روی مقادیر داده‌شده تنظیم کنید و نصب‌کننده را به ترتیب مشخص‌شده اجرا کنید.

برای گسترش به حلقه Cassandra با ۱۲ گره، گره‌ها را به روش زیر در فایل پیکربندی بی‌صدا پیکربندی کنید:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

همانند حلقه‌های سه و شش گره‌ای، باید نصب‌کننده را روی گره‌ها به ترتیبی که گره‌ها در فایل پیکربندی ظاهر می‌شوند اجرا کنید:

  1. گره ۱ (IP1)
  2. Node 7 (IP7)*
  3. Node 4 (IP4)
  4. Node 8 (IP8)
  5. گره ۲ (IP2)
  6. Node 9 (IP9)
  7. Node 5 (IP5)
  8. Node 10 (IP10)
  9. Node 3 (IP3)
  10. Node 11 (IP11)
  11. Node 6 (IP6)
  12. Node 12 (IP12)

* باید این تغییرات را قبل‌از نصب Apigee Edge for Private Cloud در گره هفتم (ماشین دوم در ترتیب نصب Cassandra) انجام دهید.