التشغيل السريع: إنشاء نظام مجموعة متعدد المناطق باستخدام مثيل Azure المدار لـ Apache Cassandra

Azure Managed Instance ل Apache Cassandra هي خدمة مدارة بالكامل لمجموعات Apache Cassandra مفتوحة المصدر فقط. تسمح الخدمة أيضا بتجاوز التكوينات، اعتمادا على الاحتياجات المحددة لكل حمل عمل، ما يسمح بأقصى قدر من المرونة والتحكم عند الحاجة.

يوضح هذا التشغيل السريع كيفية استخدام أوامر Azure CLI لتكوين كتلة متعددة المناطق في Azure.

المتطلبات الأساسية

  • تتطلب هذه المقالة الإصدار 2.30.0 من Azure CLI أو أعلى. إذا كنت تستخدم Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل.

  • شبكة Azure الظاهرية مع الاتصال بالبيئة المستضافة ذاتيا أو المحلية. لمزيد من المعلومات حول الاتصال في بيئات محلية إلى Azure، راجع مقالة ربط شبكة محلية بنظام Azure.

إعداد بيئة الشبكة

نظرا لأنه يجب نشر جميع مراكز البيانات المقدمة مع هذه الخدمة في شبكات فرعية مخصصة باستخدام حقن الشبكة الظاهرية، قم بتكوين نظير الشبكة المناسب قبل النشر. لهذا التشغيل السريع، قم بإنشاء مجموعة مع مركزي بيانات في مناطق منفصلة: شرق الولايات المتحدة وشرق الولايات المتحدة 2. أولا، إنشاء الشبكات الظاهرية لكل منطقة.

  1. قم بتسجيل الدخول إلى بوابة Azure.

  2. إنشاء مجموعة موارد باسم cassandra-mi-multi-region:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. إنشاء أول شبكة VNet في شرق الولايات المتحدة 2 مع شبكة فرعية مخصصة:

    az network vnet create \
      --name vnetEastUs2 \
      --location eastus2 \
      --resource-group cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. إنشاء الشبكة الظاهرية الثانية في شرق الولايات المتحدة، أيضا مع شبكة فرعية مخصصة:

     az network vnet create \
       --name vnetEastUs \
       --location eastus \
       --resource-group cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    إشعار

    نضيف بوضوح نطاقات عناوين IP مختلفة لضمان عدم وجود أخطاء عند النظر.

  5. نظير الشبكة الظاهرية الأولى إلى الشبكة الظاهرية الثانية:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. لربط شبكتي VNets، قم بإنشاء نظير آخر بين VNet الأولى والثانية:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic
    

    إشعار

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

  7. تحقق من إخراج الأمر السابق. تأكد من أن قيمة "peeringState" الآن "الاتصال". يمكنك أيضا التحقق من هذه النتيجة عن طريق تشغيل الأمر التالي:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. تطبيق بعض الأذونات الخاصة على كلا الشبكتين الظاهريتين. يتطلب مثيل Azure المدار ل Apache Cassandra هذه الأذونات. قم بتشغيل الأمر التالي. استبدل <SubscriptionID> بمعرّف اشتراكك:

    az role assignment create \
      --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
      --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
      --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2
    
    az role assignment create     \
      --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \
      --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \
      --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs
    

    إشعار

    assignee القيمتان و role في الأمر السابق قيم ثابتة. أدخل هذه القيم تماما كما في الأمر .

إذا واجهت أخطاء عند تشغيل az role assignment create، فقد لا يكون لديك أذونات لتشغيله. تحقق مع المسؤول للحصول على الأذونات.

إنشاء مجموعة متعددة المناطق

  1. نشر مورد نظام المجموعة. استبدل <Subscription ID> بمعرّف اشتراكك. قد يستغرق النشر من خمس إلى 10 دقائق:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    location='eastus2'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet'
    initialCassandraAdminPassword='myPassword'
    
     az managed-cassandra cluster create \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName \
       --location $location \
       --delegated-management-subnet-id $delegatedManagementSubnetId \
       --initial-cassandra-admin-password $initialCassandraAdminPassword \
       --debug
    
  2. بعد إنشاء مورد نظام المجموعة، تكون جاهزا لإنشاء مركز بيانات. أولا، إنشاء مركز بيانات في شرق الولايات المتحدة 2. استبدل <SubscriptionID> بمعرّف اشتراكك. قد يستغرق هذا الإجراء ما يصل إلى 10 دقائق:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    dataCenterName='dc-eastus2'
    dataCenterLocation='eastus2'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet'
    
     az managed-cassandra datacenter create \
        --resource-group $resourceGroupName \
        --cluster-name $clusterName \
        --data-center-name $dataCenterName \
        --data-center-location $dataCenterLocation \
        --delegated-subnet-id $delegatedManagementSubnetId \
        --node-count 3
    
  3. إنشاء مركز بيانات في شرق الولايات المتحدة. استبدل <SubscriptionID> بمعرّف اشتراكك.

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    dataCenterName='dc-eastus'
    dataCenterLocation='eastus'
    delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet'
    virtualMachineSKU='Standard_D8s_v4'
    noOfDisksPerNode=4
    
     az managed-cassandra datacenter create \
       --resource-group $resourceGroupName \
       --cluster-name $clusterName \
       --data-center-name $dataCenterName \
       --data-center-location $dataCenterLocation \
       --delegated-subnet-id $delegatedManagementSubnetId \
       --node-count 3
       --sku $virtualMachineSKU \
       --disk-capacity $noOfDisksPerNode \
       --availability-zone false
    

    إشعار

    يمكن اختيار قيمة من --sku وحدات SKU المتوفرة التالية:

    • Standard_E8s_v4
    • Standard_E16s_v4
    • Standard_E20s_v4
    • Standard_E32s_v4
    • Standard_DS13_v2
    • Standard_DS14_v2
    • Standard_D8s_v4
    • Standard_D16s_v4
    • Standard_D32s_v4

    لاحظ أيضًا أن --availability-zone تم تعيينه إلى false. لتمكين مناطق التوفر، قم بتعيين هذا إلى true. تزيد مناطق التوفر من توفر اتفاقية مستوى الخدمة للخدمة. لمزيد من المعلومات، راجع اتفاقية مستوى الخدمة لمثيل Azure المدار ل Apache Cassandra.

    تحذير

    مناطق التوفر غير مدعومة في جميع المناطق. تفشل عمليات التوزيع إذا حددت منطقة لا يتم فيها دعم مناطق التوفر. بالنسبة للمناطق المدعومة، راجع مناطق Azure ذات مناطق التوفر.

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

  4. بمجرد إنشاء مركز البيانات الثاني، احصل على حالة العقدة للتحقق من الحصول على كافة عقد Cassandra بنجاح:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. ثم اتصل بنظام المجموعة باستخدام CQLSH، واستخدم استعلام CQL التالي لتحديث استراتيجية النسخ المتماثل في كل مساحة مفتاح لتضمين جميع مراكز البيانات عبر نظام المجموعة (سيتم تحديث جداول النظام تلقائيا):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. وأخيرا، إذا كنت تقوم بإضافة مركز بيانات إلى مجموعة حيث توجد بيانات بالفعل، فستحتاج إلى التشغيل rebuild من أجل نسخ البيانات التاريخية نسخا متماثلا. في هذه الحالة، سنفترض أن مركز البيانات يحتوي بالفعل على dc-eastus2 بيانات. في Azure CLI، قم بتشغيل الأمر أدناه للتنفيذ nodetool rebuild على كل عقدة في مركز البيانات الجديد dc-eastus ، مع <ip address> استبدال بعنوان IP للعقدة:

    az managed-cassandra cluster invoke-command \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --host <ip address> \
      --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
    

    تحذير

    يجب عدم السماح لعملاء التطبيق بالكتابة إلى مركز البيانات الجديد حتى تقوم بتطبيق تغييرات النسخ المتماثل لمساحة المفاتيح. وإلا، لن تعمل إعادة البناء، وستحتاج إلى إنشاء طلب دعم حتى يتمكن فريقنا من العمل repair نيابة عنك.

استكشاف الأخطاء وإصلاحها

إذا واجهت خطأ عند تطبيق الأذونات على الشبكة الظاهرية باستخدام Azure CLI، يمكنك تطبيق نفس الإذن يدويا من مدخل Microsoft Azure. قد يكون مثال الخطأ لا يمكن العثور على المستخدم أو كيان الخدمة في قاعدة بيانات الرسم البياني ل 'e5007d2c-4b13-4a74-9b6a-605d99f03501'. لمزيد من المعلومات، راجع استخدام مدخل Microsoft Azure لإضافة كيان خدمة Azure Cosmos DB.

إشعار

يتم استخدام تعيين دور Azure Cosmos DB لأغراض التثبيت فقط. لا يشتمل المثيل المدار بـ Azure لـ Apache Cassandra على تبعيات خلفية على Azure Cosmos DB.

تنظيف الموارد

إذا لم تكن لديك نية متابعة استخدام مثيل نظام المجموعة المدار هذا، فاحذفه بالخطوات التالية:

  1. من القائمة الموجودة على الجهة اليسرى لمدخل Microsoft Azure، حدد Resource groups.
  2. من القائمة، حدد مجموعة الموارد التي أنشأتها خلال هذا التشغيل السريع.
  3. في جزء مجموعة الموارد Overview، حدد حذف مجموعة الموارد .
  4. في النافذة التالية، أدخل اسم مجموعة الموارد لحذفها، ثم حدد حذف.

الخطوات التالية

في هذا التشغيل السريع، تعلمت كيفية إنشاء مجموعة متعددة المناطق باستخدام Azure CLI والمثيل المدار بـ Azure لـ Apache Cassandra. يمكنك الآن بدء العمل مع المجموعة.