توفر عالي لـ NFS على الأجهزة الظاهرية لـ Azure على SUSE Linux Enterprise Server
إشعار
نوصي بنشر إحدى خدمات NFS التابعة لجهة Azure الأولى: NFS على ملفات Azure أو وحدات تخزين NFS ANF لتخزين البيانات المشتركة في نظام SAP عالي التوفر. كن على علم، أننا نزيل التأكيد على البنيات المرجعية ل SAP، باستخدام مجموعات NFS.
توضح هذه المقالة كيفية توزيع الأجهزة الظاهرية وتكوين الأجهزة الظاهرية وتثبيت إطار عمل نظام المجموعة وتثبيت خادم NFS ذي قابلية الوصول العالية يمكن استخدامه لتخزين البيانات المشتركة لنظام SAP ذي قابلية الوصول العالية. يوضح هذا الدليل كيفية إعداد خادم NFS ذي قابلية الوصول العالية الذي يستخدمه نظاما SAP، وهما NW1 وNW2. تفترض أسماء الموارد (على سبيل المثال الأجهزة الظاهرية والشبكات الظاهرية) في المثال أنك استخدمت قالب خادم ملفات SAP مع بادئة الموارد prod.
إشعار
تحتوي هذه المقالة على مراجع للمصطلحات التي لم تعد Microsoft تستخدمها. عند إزالة هذين المصطلحين من البرنامج، ستتم إزالتهما من هذه المقالة.
اقرأ ملاحظات وأوراق SAP التالية أولًا
ملاحظة SAP 1928533، التي تتضمن ما يلي:
- قائمة بأحجام Azure VM المعتمدة لنشر برنامج SAP
- معلومات مهمة عن السعة لأحجام أجهزة Azure الظاهرية
- برنامج SAP المدعوم ونظام التشغيل (OS) ومجموعات قواعد البيانات
- مطلوب إصدار SAP kernel Windows وLinux على Microsoft Azure
تسرد ملاحظة SAP رقم 2015553 المتطلبات الأساسية لعمليات نشر برامج SAP المدعومة في Azure.
أوصت ملاحظة SAP رقم 2205917 بإعدادات نظام التشغيل لخادم المؤسسة SUSE Linux لتطبيقات SAP
تتضمن ملاحظة SAP رقم 1944799 إرشادات SAP HANA لـ SUSE Linux Enterprise Server for SAP Applications
تحتوي ملاحظة SAP Note 2178632 على معلومات مفصلة حول جميع مقاييس المراقبة التي تم الإبلاغ عنها لـ SAP في Azure.
تحتوي ملاحظة SAP 2191498 على إصدار SAP Host Agent المطلوب لنظام التشغيل Linux في Azure.
تحتوي ملاحظة SAP رقم 2243692 على معلومات حول ترخيص SAP على Linux في Azure.
تحتوي ملاحظة SAP رقم 1984787 على معلومات عامة حول خادم المؤسسة SUSE Linux 12.
تتضمن ملاحظة رقم SAP 1999351 معلومات إضافية لاستكشاف الأخطاء وإصلاحها لـ Azure Enhanced Monitoring Extension for SAP.
يحتوي SAP Community WIKI عل كل ملاحظات SAP المطلوبة لـ Linux.
أدلة أفضل ممارسات SUSE Linux Enterprise Server for SAP Applications 12 SP5
SUSE Linux Enterprise Server for SAP Applications 12 SP5 Release Notes
نظرة عامة
لتحقيق قابلية الوصول العالية، يتطلب SAP NetWeaver خادم NFS. تم تكوين خادم NFS في مجموعة منفصلة ويمكن استخدامه من قِبَل أنظمة SAP متعددة.
يستخدم خادم NFS اسم مضيف ظاهري مخصص وعناوين IP الظاهرية لكل نظام SAP يستخدم خادم NFS هذا. على Azure، يتطلب موازن تحميل لاستخدام عنوان IP ظاهري. يعرض التكوين المقدم موازنة التحميل مع:
- عنوان IP أمامي 10.0.0.4 لـ NW1
- عنوان IP أمامي 10.0.0.5 لـ NW2
- منفذ فحص 61000 لـ NW1
- منفذ فحص 61001 لـ NW2
إعداد خادم NFS ذي قابلية وصول عالية
توزيع Linux يدوياً عبر مدخل Azure
يفترض هذا المستند أنك قمت بالفعل بنشر مجموعة موارد وشبكة Azure الظاهرية والشبكة الفرعية.
نشر جهازين ظاهريين لخوادم NFS. اختر صورة SLES مناسبة مدعومة مع نظام SAP الخاص بك. يمكنك نشر الجهاز الظاهري في أي من خيارات التوفر - مجموعة التحجيم أو منطقة التوفر أو مجموعة التوفر.
تكوين موازن تحميل Azure
اتبع دليل إنشاء موازن التحميل لتكوين موازن تحميل قياسي لقابلية وصول عالية لخادم NFS. أثناء تكوين موازن التحميل، ضع في اعتبارك النقاط التالية.
- تكوين IP للواجهة الأمامية: إنشاء عنواني IP للواجهة الأمامية. حدد نفس الشبكة الظاهرية والشبكة الفرعية مثل خادم NFS الخاص بك.
- تجمع الواجهة الخلفية: إنشاء تجمع الخلفية وإضافة الأجهزة الظاهرية لخادم NFS.
- القواعد الواردة: إنشاء قاعدتين لموازنة التحميل، واحدة ل NW1 وأخرى ل NW2. اتبع نفس الخطوات لكل من قواعد موازنة التحميل.
- عنوان IP للواجهة الأمامية: حدد IP للواجهة الأمامية
- تجمع الواجهة الخلفية: حدد تجمع الواجهة الخلفية
- تحقق من "منافذ قابلية وصول عالية"
- Protocol: TCP
- Health Probe: إنشاء مسبار صحي بالتفاصيل أدناه (ينطبق على كل من NW1 وNW2)
- Protocol: TCP
- المنفذ: [على سبيل المثال: 61000 ل NW1، 61001 ل NW2]
- الفاصل الزمني: 5
- عتبة الفحص: 2
- مهلة الخمول (بالدقائق): 30
- تحقق من "تمكين IP العائم"
إشعار
لا يتم احترام خاصية تكوين التحقيق الصحي numberOfProbes، والمعروفة باسم "عتبة غير سليمة" في المدخل. لذلك للتحكم في عدد التحقيقات المتتالية الناجحة أو الفاشلة، قم بتعيين الخاصية "probeThreshold" إلى 2. لا يمكن حاليا تعيين هذه الخاصية باستخدام مدخل Microsoft Azure، لذا استخدم إما الأمر Azure CLI أو PowerShell .
إشعار
عندما يتم وضع الأجهزة الظاهرية دون عناوين IP عامة في المجموعة الخلفية لموازن تحميل Azure القياسي الداخلي (دون عنوان IP عام)، فلن يكون هناك اتصال بالإنترنت الصادر، ما لم يتم إجراء تكوين إضافي للسماح بالتوجيه إلى نقاط النهاية العامة. للحصول على تفاصيل حول كيفية تحقيق الاتصال الصادر راجع اتصال نقطة النهاية العامة للأجهزة الظاهرية باستخدام موازن تحميل Azure قياسي في سيناريوهات SAP ذات قابلية الوصول العالية.
هام
- لا تمكِّن طوابع TCP الزمنية على أجهزة Azure الظاهرية خلف Azure Load Balancer. سيؤدي تمكين طوابع TCP الزمنية إلى فشل فحوصات السلامة. عين
net.ipv4.tcp_timestamps
المعلمة إلى0
لمزيد من التفاصيل، راجع فحوصات صحة موازن التحميل. - لمنع saptune من تغيير القيمة المعينة
net.ipv4.tcp_timestamps
يدويا من0
العودة إلى1
، يجب تحديث إصدار saptune إلى 3.1.1 أو أعلى. لمزيد من التفاصيل، راجع saptune 3.1.1 - هل أحتاج إلى التحديث؟.
إنشاء نظام مجموعة Pacemaker
اتبع الخطوات في Setting up Pacemaker on SUSE Linux Enterprise Server in Azure لإنشاء نظام مجموعة Pacemaker لخادم NFS هذا.
تكوين خادم NFS
العناصر التالية مسبوقة إما بـ [A] - تنطبق على جميع العقد، [1] - لا تنطبق إلى على العقدة 1 أو [2] - لا تنطبق إلا على العقدة 2.
[A] إعداد دقة اسم المضيف
يمكنك إما استخدام خادم DNS أو تعديل /etc/hosts على كافة العُقد. يوضح هذا المثال كيفية استخدام الملف/etc/hosts. استبدل عنوان IP واسم المضيف في الأوامر التالية
sudo vi /etc/hosts
أدرج الأسطر التالية في /etc/hosts. تغيير عنوان IP واسم المضيف لمطابقة بيئتك
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs 10.0.0.5 nw2-nfs
[A] تمكين خادم NFS
إنشاء إدخال تصدير NFS الجذر
sudo sh -c 'echo /srv/nfs/ *\(rw,no_root_squash,fsid=0\)>/etc/exports' sudo mkdir /srv/nfs/
[A] تثبيت مكونات DRBD
sudo zypper install drbd drbd-kmp-default drbd-utils
[A] إنشاء قسم لأجهزة drbd
سرد جميع أقراص البيانات المتوفرة
sudo ls /dev/disk/azure/scsi1/ # Example output # lun0 lun1
إنشاء أقسام لكل قرص بيانات
sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun0' sudo sh -c 'echo -e "n\n\n\n\n\nw\n" | fdisk /dev/disk/azure/scsi1/lun1'
[A] إنشاء تكوينات LVM
سرد جميع الأقسام المتوفرة
ls /dev/disk/azure/scsi1/lun*-part* # Example output # /dev/disk/azure/scsi1/lun0-part1 /dev/disk/azure/scsi1/lun1-part1
إنشاء وحدات تخزين LVM لكل قسم
sudo pvcreate /dev/disk/azure/scsi1/lun0-part1 sudo vgcreate vg-NW1-NFS /dev/disk/azure/scsi1/lun0-part1 sudo lvcreate -l 100%FREE -n NW1 vg-NW1-NFS sudo pvcreate /dev/disk/azure/scsi1/lun1-part1 sudo vgcreate vg-NW2-NFS /dev/disk/azure/scsi1/lun1-part1 sudo lvcreate -l 100%FREE -n NW2 vg-NW2-NFS
[A] تكوين drbd
sudo vi /etc/drbd.conf
تأكد من أن ملف drbd.conf يحتوي على السطرين التاليين
include "drbd.d/global_common.conf"; include "drbd.d/*.res";
قم بتغيير تكوين drbd العمومي
sudo vi /etc/drbd.d/global_common.conf
أضف الإدخالات التالية إلى المعالج ومقطع الشبكة.
global { usage-count no; } common { handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.9.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.9.sh"; split-brain "/usr/lib/drbd/notify-split-brain.sh root"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; } startup { wfc-timeout 0; } options { } disk { md-flushes yes; disk-flushes yes; c-plan-ahead 1; c-min-rate 100M; c-fill-target 20M; c-max-rate 4G; } net { after-sb-0pri discard-younger-primary; after-sb-1pri discard-secondary; after-sb-2pri call-pri-lost-after-sb; protocol C; tcp-cork yes; max-buffers 20000; max-epoch-size 20000; sndbuf-size 0; rcvbuf-size 0; } }
[A] إنشاء أجهزة drbd لـ NFS
sudo vi /etc/drbd.d/NW1-nfs.res
أدرج التكوين لجهاز drbd الجديد ثم أخرد
resource NW1-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7790; device /dev/drbd0; disk /dev/vg-NW1-NFS/NW1; meta-disk internal; } }
sudo vi /etc/drbd.d/NW2-nfs.res
أدرج التكوين لجهاز drbd الجديد ثم أخرد
resource NW2-nfs { protocol C; disk { on-io-error detach; } net { fencing resource-and-stonith; } on prod-nfs-0 { address 10.0.0.6:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } on prod-nfs-1 { address 10.0.0.7:7791; device /dev/drbd1; disk /dev/vg-NW2-NFS/NW2; meta-disk internal; } }
إنشاء جهاز drbd وتشغيله
sudo drbdadm create-md NW1-nfs sudo drbdadm create-md NW2-nfs sudo drbdadm up NW1-nfs sudo drbdadm up NW2-nfs
[1] تخطّى المزامنة الأولية
sudo drbdadm new-current-uuid --clear-bitmap NW1-nfs sudo drbdadm new-current-uuid --clear-bitmap NW2-nfs
[1] عيّن العقدة الأساسية
sudo drbdadm primary --force NW1-nfs sudo drbdadm primary --force NW2-nfs
[1] انتظر حتى تتم مزامنة أجهزة drbd الجديدة
sudo drbdsetup wait-sync-resource NW1-nfs sudo drbdsetup wait-sync-resource NW2-nfs
[1] أنشئ أنظمة ملفات على أجهزة drbd
sudo mkfs.xfs /dev/drbd0 sudo mkdir /srv/nfs/NW1 sudo chattr +i /srv/nfs/NW1 sudo mount -t xfs /dev/drbd0 /srv/nfs/NW1 sudo mkdir /srv/nfs/NW1/sidsys sudo mkdir /srv/nfs/NW1/sapmntsid sudo mkdir /srv/nfs/NW1/trans sudo mkdir /srv/nfs/NW1/ASCS sudo mkdir /srv/nfs/NW1/ASCSERS sudo mkdir /srv/nfs/NW1/SCS sudo mkdir /srv/nfs/NW1/SCSERS sudo umount /srv/nfs/NW1 sudo mkfs.xfs /dev/drbd1 sudo mkdir /srv/nfs/NW2 sudo chattr +i /srv/nfs/NW2 sudo mount -t xfs /dev/drbd1 /srv/nfs/NW2 sudo mkdir /srv/nfs/NW2/sidsys sudo mkdir /srv/nfs/NW2/sapmntsid sudo mkdir /srv/nfs/NW2/trans sudo mkdir /srv/nfs/NW2/ASCS sudo mkdir /srv/nfs/NW2/ASCSERS sudo mkdir /srv/nfs/NW2/SCS sudo mkdir /srv/nfs/NW2/SCSERS sudo umount /srv/nfs/NW2
[A] قم بإعداد كشف انفصال drbd
عند استخدام drbd لمزامنة البيانات من مضيف مع مضيف آخر، يمكن أن يحدث ما يسمى انفصال. الانفصال هي حالة تتم فيها ترقية عُقد نظام المجموعة لجهاز drbd لتكون أساسية وخارج المزامنة. قد يكون هذا موقفاً نادراً ولكنك ستظل بحاجة إلى معالجة الانفصال وحله في أسرع وقت ممكن. لذلك، من المهم أن يتم إعلامك عند حدوث انفصال.
اقرأ وثائق drbd الرسمية حول كيفية إعداد إعلام الانفصال.
من الممكن أيضاً الاسترداد تلقائياً من سيناريو الانفصال. لمزيد من المعلومات، اطلع على Automatic split brain recovery policies
تكوين إطار عمل نظام مجموعة
[1] أضف أجهزة NFS drbd لـ NW1 الخاص بنظام SAP إلى تكوين نظام المجموعة
هام
كشفت الاختبارات الأخيرة عن حالات، حيث تتوقف netcat عن الاستجابة للطلبات بسبب تراكم الأعمال المتراكمة ومحدوديتها في التعامل مع اتصال واحد فقط. يتوقف مورد netcat عن الاستماع إلى طلبات موازن تحميل Azure ويصبح عنوان IP الحُر غير متوفر.
بالنسبة إلى أنظمة مجموعات Pacemaker الحالية، أوصينا في الماضي بإحلال netcat محل socat. نوصي حالياً باستخدام عامل موارد azure-lb، وهو جزء من عوامل موارد الحزمة، مع متطلبات إصدار الحزمة التالية:- بالنسبة لـ SLES 12 SP4/SP5، يجب أن يكون الإصدار على الأقل resource-agents-4.3.018.a7fb5035-3.30.1.
- بالنسبة إلى SLES 15/15 SP1، يجب أن يكون الإصدار على الأقل resource-agents-4.3.0184.6ee15eb2-4.13.1.
لاحظ أن التغيير سيتطلب وقتًا قصيرًا.
بالنسبة إلى أنظمة مجموعات Pacemaker الموجودة، إذا تم تغيير التكوين بالفعل لاستخدام socat كما هو موضح في Azure Load-Balancer Detection Hardening، فلا يلزم التبديل فوراً إلى عامل مورد azure-lb.sudo crm configure rsc_defaults resource-stickiness="200" # Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW1_nfs \ ocf:linbit:drbd \ params drbd_resource="NW1-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW1_nfs drbd_NW1_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW1_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd0 \ directory=/srv/nfs/NW1 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive nfsserver systemd:nfs-server \ op monitor interval="30s" sudo crm configure clone cl-nfsserver nfsserver sudo crm configure primitive exportfs_NW1 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW1" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=1 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW1_nfs IPaddr2 \ params ip=10.0.0.4 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW1_nfs azure-lb port=61000 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW1_nfs \ fs_NW1_sapmnt exportfs_NW1 nc_NW1_nfs vip_NW1_nfs sudo crm configure order o-NW1_drbd_before_nfs inf: \ ms-drbd_NW1_nfs:promote g-NW1_nfs:start sudo crm configure colocation col-NW1_nfs_on_drbd inf: \ g-NW1_nfs ms-drbd_NW1_nfs:Master
[1] أضف أجهزة NFS drbd لـ NW2 الخاص بنظام SAP إلى تكوين نظام المجموعة
# Enable maintenance mode sudo crm configure property maintenance-mode=true sudo crm configure primitive drbd_NW2_nfs \ ocf:linbit:drbd \ params drbd_resource="NW2-nfs" \ op monitor interval="15" role="Master" \ op monitor interval="30" role="Slave" sudo crm configure ms ms-drbd_NW2_nfs drbd_NW2_nfs \ meta master-max="1" master-node-max="1" clone-max="2" \ clone-node-max="1" notify="true" interleave="true" sudo crm configure primitive fs_NW2_sapmnt \ ocf:heartbeat:Filesystem \ params device=/dev/drbd1 \ directory=/srv/nfs/NW2 \ fstype=xfs \ op monitor interval="10s" sudo crm configure primitive exportfs_NW2 \ ocf:heartbeat:exportfs \ params directory="/srv/nfs/NW2" \ options="rw,no_root_squash,crossmnt" clientspec="*" fsid=2 wait_for_leasetime_on_stop=true op monitor interval="30s" sudo crm configure primitive vip_NW2_nfs IPaddr2 \ params ip=10.0.0.5 op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW2_nfs azure-lb port=61001 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW2_nfs \ fs_NW2_sapmnt exportfs_NW2 nc_NW2_nfs vip_NW2_nfs sudo crm configure order o-NW2_drbd_before_nfs inf: \ ms-drbd_NW2_nfs:promote g-NW2_nfs:start sudo crm configure colocation col-NW2_nfs_on_drbd inf: \ g-NW2_nfs ms-drbd_NW2_nfs:Master
يتوفر الخيار
crossmnt
في موارد نظام المجموعةexportfs
في الوثائق المتعلقة بتوافق الإصدارات السابقة مع إصدارات SLES القديمة.[1] تعطيل وضع الصيانة
sudo crm configure property maintenance-mode=false
الخطوات التالية
- تثبيت SAP ASCS وقاعدة البيانات
- تخطيط وتنفيذ Azure Virtual Machines لـSAP
- توزيع أجهزة Azure الظاهرية لـ SAP
- نشر نظام Azure إدارة قواعد البيانات للأجهزة الظاهرية لـ Azure لـ SAP
- لمعرفة كيفية إنشاء قابلية وصول عالية وتخطيط لاستعادة SAP Hana بعد الكوارث على أجهزة Azure الظاهرية، راجع قابلية وصول عالية لـ SAP HANA على أجهزة Azure الظاهرية (VMs)