استمرارًا
للمقال "Pacemaker Cluster Storage + DRBD (ثنائي أساسي) + ctdb" أقدم نسخة كاملة
وعاملة من كرات ملف نظام المجموعة HA من 2 إلى 4 عقد لـ centos 6 و centos 7. إذا كنت تريد تنفيذ ذلك ، فأنت إما منحرف أو لم يعطوا أي خيار ، ومن الضروري تنفيذه بطريقة أو بأخرى.
سأصف ببساطة كعكة النفخة التي سنجمعها:
على جهاز الكتلة ، قم بتكوين الجدول gpt => قسم واحد لكامل المساحة تحت lvm => مجموعة وحدات تخزين lvm لكامل المساحة المتاحة => وحدة تخزين lvm لكامل المساحة المتاحة => drbd device => dlm => حدده على أنه الحجم الفعلي للمساحة المتاحة لكامل المساحة المتاحة => عليها مجموعة كتلة من وحدات تخزين lvm => وحدة تخزين lvm على كل المساحة المتاحة => ترميز fs gfs2 => الاتصال بنقطة التثبيت.
وسيتم توجيه كل هذا بواسطة جهاز تنظيم ضربات القلب باستخدام عنوان IP افتراضي.
إذا كنت لا تزال ترغب في المتابعة ، فاقرأ أدناه.
من المصدر نحتاج إلى ما يلي:وحدة المعالجة المركزية 1 الأساسية
1 غيغابايت كحد أدنى من ذاكرة الوصول العشوائي
قرص 15 جيجابايت + المكان الذي ستخزن فيه البيانات
يمكن أن تكون الأقراص أي رقم ، حتى واحد.
إذا كان لديك محرك أقراص واحد ، فمن الأفضل تقسيمه على النحو التالي:
جدول القسم gpt => قسم 200 ميغابايت لـ efi (اختياري) => قسم 1 غيغابايت لـ / boot => كل شيء آخر تحت lvm.
على وحدة تخزين LVM ، تحتاج إلى إنشاء مجموعتي وحدة تخزين. المجموعة الأولى من وحدات التخزين ضمن نظام التشغيل هي 10 جيجابايت + ضعف حجم ذاكرة الوصول العشوائي ، ولكن ليس أكثر من 4 جيجابايت.
كل من قال ذلك ، لكن المبادلة تساعد أحيانًا كثيرًا ، لذا في المجموعة lvm نقوم بإنشاء قسم lvm للمبادلة يساوي ضعف حجم ذاكرة الوصول العشوائي ، ولكن لا يزيد عن 4 جيجابايت ويتم تخصيص المساحة المتبقية لجذر نظام التشغيل.
المجموعة الثانية من LVM لتخزين البيانات. إنشاء قسم lvm للمساحة المتبقية.
وفقًا للشروط ، حصلنا على جهازين ظاهريين وهذا كل شيء. من الأفضل وضع Ceph للتشغيل الصحيح على 6 عقد ، على الأقل 4 ، بالإضافة إلى أنه سيكون من الجيد الحصول على بعض الخبرة في ذلك ، وإلا فسيتم تشغيلها مثل cloudmouse. لن يعمل التوهج لمئات الآلاف من الملفات الصغيرة في الأداء ، فقد أضعفته في اتساع حبري عدة مرات. لدى ipfs و luster وما شابه ذلك نفس متطلبات ceph أو أكثر.
لنبدأ المعركة! كان لدي جهازين ظاهريين على CentOS 7 مع قرصين.
1) لا يعمل إصدار Pacemaker 1.1 مع ip بشكل صحيح ، لذلك من أجل الموثوقية ، أضف مداخل إلى / etc / hosts:
192.168.0.1 node1 192.168.0.2 node2
2) لا يوجد DRBD في المستودعات القياسية ، لذلك تحتاج إلى توصيل طرف ثالث.
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum localinstall -y http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/$(curl -s http://ftp.nluug.nl/os/Linux/distr/elrepo/elrepo/el7/x86_64/RPMS/ | grep -oP ">elrepo-release.*rpm" | cut -c 2-)
3) تثبيت drbd الإصدار 8.4
yum install -y kmod-drbd84 drbd84-utils
4) تفعيل وتمكين وحدة drbd kernel في بدء التشغيل
modprobe drbd echo drbd > /etc/modules-load.d/drbd.conf
5) إنشاء قسم القرص وتكوين LVM
echo -e "g\nn\n\n\n\nt\n8e\nw\n" | fdisk /dev/sdb vgcreate drbd_vg /dev/sdb1 lvcreate -l +100%FREE --name r0 drbd_vg
6) إنشاء ملف التكوين للمورد drbd /etc/drbd.d/r0.res
resource r0 { protocol C; device /dev/drbd1; meta-disk internal; disk /dev/mapper/drbd_vg-r0; net { allow-two-primaries; } disk { fencing resource-and-stonith; } handlers { fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh"; } startup { become-primary-on both; } on node1 { address 192.168.0.1:7788; } on node2 { address 192.168.0.2:7788; }
7) نقوم بإزالة خدمة drbd من التحميل التلقائي (سيكون منظم ضربات القلب في وقت لاحق مسؤولاً عن ذلك) ، وإنشاء البيانات الوصفية لقرص drbd ، ورفع المورد
systemctl disable drbd drbdadm create-md r0 drbdadm up r0
8) على العقدة الأولى ، جعل المورد الأساسي
drbdadm primary --force r0
9) ضع جهاز تنظيم ضربات القلب
yum install -y pacemaker corosync pcs resource-agents fence-agents-all
10) تعيين كلمة مرور للمستخدم hacluster للحصول على إذن على العقد
echo CHANGEME | passwd --stdin hacluster
11) تشغيل pcsd على كلا العقدتين
systemctl enable pcsd systemctl start pcsd
12) تسجيل الدخول إلى الكتلة. من هذه المرحلة نقوم بكل شيء على عقدة واحدة
pcs cluster auth node1 node2 -u hacluster -p CHANGEME --force
13) إنشاء كتلة باسم samba_cluster
pcs cluster setup --force --name samba_cluster node1 node2
14) تنشيط العقد وإضافة خدمات لبدء التشغيل وبدء تشغيلها
pcs cluster enable --all pcs cluster start --all systemctl start corosync pcsd pacemaker systemctl enable corosync pcsd pacemaker
15) نظرًا لأن لدينا أجهزة افتراضية كخوادم ، فإننا نوقف تشغيل آلية STONITH ، نظرًا لعدم وجود أي آليات لإدارتها. لدينا أيضًا سيارتان فقط ، لذا نقوم أيضًا بتعطيل النصاب القانوني ، وهو يعمل فقط مع 3 أجهزة أو أكثر.
pcs property set stonith-enabled=false pcs property set no-quorum-policy=ignore
16) إنشاء VIP
pcs resource create virtual_ip ocf:heartbeat:IPaddr2 ip=192.168.0.10 cidr_netmask=32 nic=eth0 clusterip_hash=sourceip-sourceport op monitor interval=1s
17) إنشاء مورد drbd
pcs resource create DRBD1 ocf:linbit:drbd drbd_resource=r0 op monitor interval=60s master master-max=2 master-node-max=1 clone-node-max=1 clone-max=2 notify=true op start interval=0s timeout=240 promote interval=0s timeout=130 monitor interval=150s role=Master monitor interval=155s role=Slave
18) تثبيت الحزم اللازمة ل clvm وإعداد clvm
yum install -y lvm2-cluster gfs2-utils /sbin/lvmconf --enable-cluster
19) أضف مورد dlm و clvd إلى منظم ضربات القلب
pcs resource create dlm ocf:pacemaker:controld allow_stonith_disabled=true clone meta interleave=true pcs resource create clvmd ocf:heartbeat:clvm clone meta interleave=true
20) نحن نمنع LVM من كتابة ذاكرة التخزين المؤقت ومسحها. على كلا العقدتين
sed -i 's/write_cache_state = 1/write_cache_state = 0/' /etc/lvm/lvm.conf rm /etc/lvm/cache/*
21) إنشاء قسم CLVM. نحن نصنع فقط في ملاحظة واحدة
vgcreate -A y -cy cl_vg /dev/drbd1 lvcreate -l 100%FREE -n r0 cl_vg
22) نقوم بترميز القسم في gfs2 ، ومن المهم هنا أن يكون لقفل القفل نفس اسم مجموعتنا في صانع السلام. نحن نصنع فقط في ملاحظة واحدة
mkfs.gfs2 -j 2 -p lock_dlm -t samba_cluster:r0 /dev/cl_vg/r0
23) بعد ذلك ، أضف جبل هذا القسم في جهاز تنظيم ضربات القلب وأخبره بالتمهيد بعد clvmd
pcs resource create fs ocf:heartbeat:Filesystem device="/dev/cl_vg/r0" directory="/mnt" fstype="gfs2" clone interleave=true
24) الآن جاء دور ctdb الذي سيدير السامبا
yum install -y samba ctdb cifs-utils
25) قم بتحرير config /etc/ctdb/ctdbd.conf
CTDB_RECOVERY_LOCK="/mnt/ctdb/.ctdb.lock" CTDB_NODES=/etc/ctdb/nodes CTDB_MANAGES_SAMBA=yes CTDB_LOGGING=file:/var/log/ctdb.log CTDB_DEBUGLEVEL=NOTICE
26) إنشاء ملف مع قائمة العقد / الخ / ctdb / العقد
الاهتمام! بعد كل عنوان في القائمة يجب أن يكون هناك تغذية سطر. وإلا ، لن يتم تشغيل العقدة أثناء التهيئة.
192.168.0.1 192.168.0.2
27) أخيرًا ، قم بإنشاء مورد ctdb
pcs resource create samba systemd:ctdb clone meta interleave=true
28) وضعنا قائمة انتظار التحميل وتبعيات الموارد ليتم تشغيلها
pcs constraint colocation add dlm-clone with DRBD1-master pcs constraint colocation add clvmd-clone with dlm-clone pcs constraint colocation add fs-clone with clvmd-clone pcs constraint colocation add samba-clone with fs-clone pcs constraint colocation add virtual_ip with samba-clone pcs constraint order promote DRBD1-master then dlm-clone pcs constraint order start dlm-clone then clvmd-clone pcs constraint order start clvmd-clone then fs-clone pcs constraint order start fs-clone then samba-clone
29) وضعنا قائمة الانتظار لإيقاف الموارد ، وبدون هذا ، قد يتجمد جهازك في وقت إيقاف التشغيل
pcs constraint order stop fs-clone then stop clvmd-clone pcs constraint order stop clvmd-clone then stop dlm-clone pcs constraint order stop dlm-clone then stop DRBD1-master pcs constraint order stop samba-clone then stop fs-clone
PS
يمكن أن تكون الكرة نفسها على nfs ، وعلى samba ، ولكن الاتصال بها يكون خاطئًا بواسطة IP ، على الرغم من أن HA تقوم بتخزين نفسه. إذا كنت تريد HA الكامل ، فبدلاً من samba و nfs ، تحتاج إلى تثبيت iSCSI والاتصال عبر المسارات المتعددة. بالإضافة إلى ذلك ، يمكنك الحصول على splitbrain في حالة وفاة إحدى العقد ، وعندما يرتفع السيد ، لن يتم ذلك. لقد قمت بالتأكد من أنه في حالة إيقاف تشغيل نظام التشغيل بشكل صحيح ، ثم بعد رفع العقدة عند عدم وجود سيد ، ينتقل إلى وضع قديم ولا يصبح سيدًا لتجنب تجزئة العقول. خيارات النصاب (DRBD و / أو جهاز تنظيم ضربات القلب) وأي تشوهات من إنشاءات DRBD المتتالية بعد التكوين الخاص بك لا يمكن الدفاع عنها بسبب تعقيدها العالي ، سيستغرق مسؤول آخر وقتًا طويلاً لمعرفة ذلك. على الرغم من أن ما كتبته ليس أفضل ، لا تفعل ذلك.
المراجع
هناك تعليمات مماثلة مع بناء الجملة لجهاز تنظيم ضربات القلب 1.0.