मैं चल रहा हूँ drbd83
के साथ ocfs2
में centos 5
और इस्तेमाल की योजना बना packemaker
उन लोगों के साथ। कुछ समय के लिए, मैं drbd
विभाजित मस्तिष्क की समस्या का सामना कर रहा हूं ।
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by mockbuild@builder10.centos.org, 2012-05-07 11:56:36
1: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown r-----
ns:0 nr:0 dw:112281991 dr:797551 al:99 bm:6401 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:60
मैं अपने डीबीडी को सेकेंडरी में नहीं बदल सकता।
drbdadm secondary r0
1: State change failed: (-12) Device is held open by someone
Command 'drbdsetup 1 secondary' terminated with exit code 11
मेरा drbd
संसाधन कॉन्फ़िगरेशन:
resource r0 {
syncer {
rate 1000M;
verify-alg sha1;
}
disk {
on-io-error detach;
}
handlers {
pri-lost-after-sb "/usr/lib/drbd/notify-split-brain.sh root";
}
net {
allow-two-primaries;
after-sb-0pri discard-younger-primary;
after-sb-1pri call-pri-lost-after-sb;
after-sb-2pri call-pri-lost-after-sb;
}
startup { become-primary-on both; }
on serving_4130{
device /dev/drbd1;
disk /dev/sdb1;
address 192.168.4.130:7789;
meta-disk internal;
}
on MT305-3182 {
device /dev/drbd1;
disk /dev/xvdb1;
address 192.168.3.182:7789;
meta-disk internal;
}
}
Ocfs2 की स्थिति:
service ocfs2 status
Configured OCFS2 mountpoints: /data
lsof
दिखाएँ कि, वहाँ एक प्रक्रिया है drdd के साथ सापेक्ष।
lsof | grep drbd
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
drbd1_wor 7782 root cwd DIR 253,0 4096 2 /
drbd1_wor 7782 root rtd DIR 253,0 4096 2 /
drbd1_wor 7782 root txt unknown /proc/7782/exe
और यह एक मृत सिम्क्लिन है:
# ls -l /proc/7782/exe
ls: cannot read symbolic link /proc/7782/exe: No such file or directory
lrwxrwxrwx 1 root root 0 May 4 09:56 /proc/7782/exe
# ps -ef | awk '$2 == "7782" { print $0 }'
root 7782 1 0 Apr22 ? 00:00:20 [drbd1_worker]
ध्यान दें कि यह प्रक्रिया वर्गाकार कोष्ठक में लिपटी है:
args COMMAND command with all its arguments as a string. Modifications to the arguments may be shown. The
output in this column may contain spaces. A process marked <defunct> is partly dead, waiting to
be fully destroyed by its parent. Sometimes the process args will be unavailable; when this
happens, ps will instead print the executable name in brackets.
तो, अंतिम सवाल यह है: हम रिबूट किए बिना इस मामले में मैन्युअल रूप से DRBD को कैसे पुनर्प्राप्त कर सकते हैं ?
@Andreask को जवाब दें:
मेरी विभाजन तालिका:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
35G 6.9G 27G 21% /
/dev/xvda1 99M 20M 74M 22% /boot
tmpfs 1.0G 0 1.0G 0% /dev/shm
/dev/drbd1 100G 902M 100G 1% /data
डिवाइस का नाम:
# dmsetup ls --tree -o inverted
(202:2)
├─VolGroup00-LogVol01 (253:1)
└─VolGroup00-LogVol00 (253:0)
ब्लॉक डिवाइस पर ध्यान दें ( 253:0
), यह आउटपुट के समान है lsof
:
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID vCd152-amVZ-GaPo-H9Zs-TIS0-KI6j-ej8kYi
LV Write Access read/write
LV Status available
# open 1
LV Size 35.97 GB
Current LE 1151
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
@Doug को जवाब दें:
# vgdisplay
--- Volume group ---
VG Name VolGroup00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 39.88 GB
PE Size 32.00 MB
Total PE 1276
Alloc PE / Size 1276 / 39.88 GB
Free PE / Size 0 / 0
VG UUID OTwzII-AP5H-nIbH-k2UA-H9nw-juBv-wcvmBq
अद्यतन शुक्र मई 17 16:08:16 आईसीटी 2013
यहाँ कुछ विचारों से लार्स Ellenberg :
अगर फाइलसिस्टम अभी भी माउंट है ... ओह ठीक है। इसे अनमाउंट करें। आलसी नहीं, लेकिन वास्तव में।
मुझे यकीन है, OCFS2 पहले से ही अनमाउंट था।
यदि nfs शामिल था, तो प्रयास करें
killall -9 nfsd killall -9 lockd echo 0 > /proc/fs/nfsd/threads
नहीं, NFS शामिल नहीं था।
यदि lvm / dmsetup / kpartx / multipath / udev शामिल है, तो प्रयास करें
dmsetup ls --tree -o inverted
और जांच करें कि क्या ड्रब से निर्भरताएं हैं।
जैसा कि आप मेरे उपरोक्त आउटपुट से देख सकते हैं, LVM DRBD से संबंधित नहीं है:
pvdisplay -m
--- Physical volume ---
PV Name /dev/xvda2
VG Name VolGroup00
PV Size 39.90 GB / not usable 20.79 MB
Allocatable yes (but full)
PE Size (KByte) 32768
Total PE 1276
Free PE 0
Allocated PE 1276
PV UUID 1t4hkB-p43c-ABex-stfQ-XaRt-9H4i-51gSTD
--- Physical Segments ---
Physical extent 0 to 1148:
Logical volume /dev/VolGroup00/LogVol00
Logical extents 0 to 1148
Physical extent 1149 to 1275:
Logical volume /dev/VolGroup00/LogVol01
Logical extents 0 to 126
fdisk -l
Disk /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/xvda1 * 1 13 104391 83 Linux
/dev/xvda2 14 5221 41833260 8e Linux LVM
Disk /dev/xvdb: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/xvdb1 1 13054 104856223+ 83 Linux
यदि लूप / क्रिप्टोलोप / आदि शामिल है, तो जांचें कि क्या उनमें से एक अभी भी उन तक पहुंच रहा है।
यदि कुछ वर्चुअलाइजेशन टेक्नीक उपयोग में है, तो उन सभी कंटेनरों / वीएम को बंद / नष्ट कर दें, जो अपने जीवन काल के दौरान उस ड्रब तक पहुंच सकते हैं।
नहीं, यह नहीं है।
कभी-कभी यह सिर्फ udev या समकक्ष एक दौड़ कर रहा है।
मैंने multipath
नियम को निष्क्रिय कर दिया है और यहां तक कि रोक भी दिया है udevd
, और कुछ भी नहीं बदलता है।
कभी-कभी यह एक यूनिक्स डोमेन सॉकेट है या इसी तरह अभी भी खुला हुआ है (lsof / fuser में दिखाना आवश्यक नहीं है)।
यदि हां, तो हम इस यूनिक्स सॉकेट का पता कैसे लगा सकते हैं?
अद्यतन दिनांक 22 मई 22:10:41 आईसीटी 2013
यहां DRSD कार्यकर्ता प्रक्रिया का स्टैकट्रेस है जब जादू SysRq कुंजी के माध्यम से डंपिंग :
kernel: drbd1_worker S ffff81007ae21820 0 7782 1 7795 7038 (L-TLB)
kernel: ffff810055d89e00 0000000000000046 000573a8befba2d6 ffffffff8008e82f
kernel: 00078d18577c6114 0000000000000009 ffff81007ae21820 ffff81007fcae040
kernel: 00078d18577ca893 00000000000002b1 ffff81007ae21a08 000000017a590180
kernel: Call Trace:
kernel: [<ffffffff8008e82f>] enqueue_task+0x41/0x56
kernel: [<ffffffff80063002>] thread_return+0x62/0xfe
kernel: [<ffffffff80064905>] __down_interruptible+0xbf/0x112
kernel: [<ffffffff8008ee84>] default_wake_function+0x0/0xe
kernel: [<ffffffff80064713>] __down_failed_interruptible+0x35/0x3a
kernel: [<ffffffff885d461a>] :drbd:.text.lock.drbd_worker+0x2d/0x43
kernel: [<ffffffff885eca37>] :drbd:drbd_thread_setup+0x127/0x1e1
kernel: [<ffffffff800bab82>] audit_syscall_exit+0x329/0x344
kernel: [<ffffffff8005dfb1>] child_rip+0xa/0x11
kernel: [<ffffffff885ec910>] :drbd:drbd_thread_setup+0x0/0x1e1
kernel: [<ffffffff8005dfa7>] child_rip+0x0/0x11
मुझे यकीन नहीं है कि यह OCFS2 दिल की धड़कन क्षेत्र DRBD को माध्यमिक में बदलने से रोक रहा है:
kernel: o2hb-C3E41CA2 S ffff810002536420 0 9251 31 3690 (L-TLB)
kernel: ffff810004af7d20 0000000000000046 ffff810004af7d30 ffffffff80063002
kernel: 1400000004000000 000000000000000a ffff81007ec307a0 ffffffff80319b60
kernel: 000935c260ad6764 0000000000000fcd ffff81007ec30988 0000000000027e86
kernel: Call Trace:
kernel: [<ffffffff80063002>] thread_return+0x62/0xfe
kernel: [<ffffffff8006389f>] schedule_timeout+0x8a/0xad
kernel: [<ffffffff8009a41d>] process_timeout+0x0/0x5
kernel: [<ffffffff8009a97c>] msleep_interruptible+0x21/0x42
kernel: [<ffffffff884b3b0b>] :ocfs2_nodemanager:o2hb_thread+0xd2c/0x10d6
kernel: [<ffffffff80063002>] thread_return+0x62/0xfe
kernel: [<ffffffff800a329f>] keventd_create_kthread+0x0/0xc4
kernel: [<ffffffff884b2ddf>] :ocfs2_nodemanager:o2hb_thread+0x0/0x10d6
kernel: [<ffffffff800a329f>] keventd_create_kthread+0x0/0xc4
kernel: [<ffffffff80032632>] kthread+0xfe/0x132
kernel: [<ffffffff8005dfb1>] child_rip+0xa/0x11
kernel: [<ffffffff800a329f>] keventd_create_kthread+0x0/0xc4
kernel: [<ffffffff80032534>] kthread+0x0/0x132
kernel: [<ffffffff8005dfa7>] child_rip+0x0/0x11
umount
ocfs
इसे गौण करने की कोशिश की थी?