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

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

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

قفسه چیست؟

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

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

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

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

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

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

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

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

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

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

همه توپولوژی‌های نصب تولید Apigee Edge برای 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. Node 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. Node 2 (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"

As with a three- and six-node rings, you must execute the installer on nodes in the order in which the nodes appear in the configuration file:

  1. گره ۱ (IP1)
  2. Node 7 (IP7)*‎
  3. گره ۴ (IP4)
  4. Node 8 (IP8)
  5. Node 2 (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) انجام دهید.