التشغيل السريع: إنشاء نظام مجموعة متعدد المناطق باستخدام مثيل Azure المدار لـ Apache Cassandra
Azure Managed Instance ل Apache Cassandra هي خدمة مدارة بالكامل لمجموعات Apache Cassandra مفتوحة المصدر فقط. تسمح الخدمة أيضا بتجاوز التكوينات، اعتمادا على الاحتياجات المحددة لكل حمل عمل، ما يسمح بأقصى قدر من المرونة والتحكم عند الحاجة.
يوضح هذا التشغيل السريع كيفية استخدام أوامر Azure CLI لتكوين كتلة متعددة المناطق في Azure.
المتطلبات الأساسية
استخدم بيئة Bash في Azure Cloud Shell. لمزيد من المعلومات، راجع التشغيل السريع ل Bash في Azure Cloud Shell.
إذا كنت تفضل تشغيل أوامر مرجع CLI محلياً قم بتثبيت CLI Azure. إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker.
إذا كنت تستخدم تثبيت محلي، يُرجى تسجيل الدخول إلى Azure CLI مستخدمًا أمر az login. لإنهاء عملية المصادقة، اتبع الخطوات المعروضة في جهازك. للحصول على خيارات أخرى لتسجيل دخول، راجع تسجيل الدخول باستخدام Azure CLI.
عندما يُطلب منك، قم بتثبيت ملحق Azure CLI عند الاستخدام لأول مرة. لمزيد من المعلومات بشأن الامتدادات، راجع استخدام امتدادات مع Azure CLI.
يُرجى تشغيل إصدار az للوصول إلى الإصدار والمكتبات التابعة التي تم تثبيتها. للتحديث لآخر إصدار، يُرجى تشغيل تحديث az.
تتطلب هذه المقالة الإصدار 2.30.0 من Azure CLI أو أعلى. إذا كنت تستخدم Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل.
شبكة Azure الظاهرية مع الاتصال بالبيئة المستضافة ذاتيا أو المحلية. لمزيد من المعلومات حول الاتصال في بيئات محلية إلى Azure، راجع مقالة ربط شبكة محلية بنظام Azure.
إعداد بيئة الشبكة
نظرا لأنه يجب نشر جميع مراكز البيانات المقدمة مع هذه الخدمة في شبكات فرعية مخصصة باستخدام حقن الشبكة الظاهرية، قم بتكوين نظير الشبكة المناسب قبل النشر. لهذا التشغيل السريع، قم بإنشاء مجموعة مع مركزي بيانات في مناطق منفصلة: شرق الولايات المتحدة وشرق الولايات المتحدة 2. أولا، إنشاء الشبكات الظاهرية لكل منطقة.
قم بتسجيل الدخول إلى بوابة Azure.
إنشاء مجموعة موارد باسم cassandra-mi-multi-region:
az group create --location eastus2 --name cassandra-mi-multi-region
إنشاء أول شبكة 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
إنشاء الشبكة الظاهرية الثانية في شرق الولايات المتحدة، أيضا مع شبكة فرعية مخصصة:
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 مختلفة لضمان عدم وجود أخطاء عند النظر.
نظير الشبكة الظاهرية الأولى إلى الشبكة الظاهرية الثانية:
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
لربط شبكتي 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
إشعار
إذا أضفت المزيد من المناطق، فإن كل شبكة ظاهرية تتطلب التناظر منها إلى جميع الشبكات الظاهرية الأخرى، ومن جميع الشبكات الظاهرية الأخرى إليها.
تحقق من إخراج الأمر السابق. تأكد من أن قيمة "peeringState" الآن "الاتصال". يمكنك أيضا التحقق من هذه النتيجة عن طريق تشغيل الأمر التالي:
az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringState
تطبيق بعض الأذونات الخاصة على كلا الشبكتين الظاهريتين. يتطلب مثيل 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
، فقد لا يكون لديك أذونات لتشغيله. تحقق مع المسؤول للحصول على الأذونات.
إنشاء مجموعة متعددة المناطق
نشر مورد نظام المجموعة. استبدل
<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. استبدل
<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
إنشاء مركز بيانات في شرق الولايات المتحدة. استبدل
<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 التي حددتها أو السعة متوفرة عبر جميع المناطق.
بمجرد إنشاء مركز البيانات الثاني، احصل على حالة العقدة للتحقق من الحصول على كافة عقد Cassandra بنجاح:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster node-status \ --cluster-name $clusterName \ --resource-group $resourceGroupName
ثم اتصل بنظام المجموعة باستخدام CQLSH، واستخدم استعلام CQL التالي لتحديث استراتيجية النسخ المتماثل في كل مساحة مفتاح لتضمين جميع مراكز البيانات عبر نظام المجموعة (سيتم تحديث جداول النظام تلقائيا):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
وأخيرا، إذا كنت تقوم بإضافة مركز بيانات إلى مجموعة حيث توجد بيانات بالفعل، فستحتاج إلى التشغيل
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.
تنظيف الموارد
إذا لم تكن لديك نية متابعة استخدام مثيل نظام المجموعة المدار هذا، فاحذفه بالخطوات التالية:
- من القائمة الموجودة على الجهة اليسرى لمدخل Microsoft Azure، حدد Resource groups.
- من القائمة، حدد مجموعة الموارد التي أنشأتها خلال هذا التشغيل السريع.
- في جزء مجموعة الموارد Overview، حدد حذف مجموعة الموارد .
- في النافذة التالية، أدخل اسم مجموعة الموارد لحذفها، ثم حدد حذف.
الخطوات التالية
في هذا التشغيل السريع، تعلمت كيفية إنشاء مجموعة متعددة المناطق باستخدام Azure CLI والمثيل المدار بـ Azure لـ Apache Cassandra. يمكنك الآن بدء العمل مع المجموعة.