AppLogic automatically repair controller volume at controller bootup stage. In some scenarios, it fails and need user intervention. This article introduces how to manual repair controller volumes in following versions.
Controller has 3 volumes: boot, meta and impex. each volume has 2 mirrors stored on difference nodes by default
From 3.0, controller has following difference
From 3.5, controller volume can be stored on san/nfs(If san/nfs is enabled when creating grid, controller volume is stored on san/nfs rather than node local hard disk by default, but only has 1 mirror on san/nfs). The controller volume repair process is different in such scenario. You may refer to following document for details.
http://cawiki.ca.com/pages/viewpageattachments.action?pageId=42272906&sortBy=date&highlight=21168769-1+-Controller+Fs%28File+system%29+Has+Broken.docx&
The below instruction is mainly for repairing boot and meta volume if their file system are corrupted which cause controller fail to start up.
login primary server, use “3tsrv sd get” and “3tsrv bd list” to display which hoop, nbd and md device attached with controller volume mirrors. As a cross check, you can check /var/applogic/boot/sys_vols_mounts of primary server. Usually, boot volume is attached to md1, meta is attached to md2, impex is attached to md3, but patern may be different in different Applogic version
Connect to the node where volume is stored, execute "hosetup /dev/hoopY /var/applogic/volumes/vols/<controller volume mirror name>" to attach the volume mirror to availabe hoopY. In the below sample, controller boot volume mirror v-ctl-boot is attached to /dev/hoop100
hosetup /dev/hoop100 /var/applogic/volumes/vols/v-ctl-boot
Attach hoopX to an available mdX using "mdadm --assemble /dev/mdX --force --run /dev/hoopY". In the below sample, hoop100 is attached to md110
mdadm --assemble /dev/md110 --force --run /dev/hoop100
Execute "3tsrv bd list --all" to verify hoopX and mdX are visible
If both 2 mirrors have synced=1 flag but you want to repair on mirror only, leave the one you would like to repair with synced=1, and set the other one as synced=0. It can be modified by “3tsrv sd get” followed by “3tsrv sd set”.
Let's assume controller volume mirrors are on server A and B.
Connect to the node A, execute "hosetup /dev/hoopY /var/applogic/volumes/vols/<controller volume mirror name>" to attach the volume mirror to available hoopY.In the below sample, controller boot volume mirror v-ctl-boot is attached to /dev/hoop100
hosetup /dev/hoop100 /var/applogic/volumes/vols/v-ctl-boot
Afterward, exeucte "ndb-server <available port name> /dev/hoopY" to share hoopY. In the below sample, hoop100 is shared with port 1234
nbd-server 1234 /dev/hoop100
Repeat the same operation on node B to attach the other volume mirror to hoop device and share it. In addition, connect to nbd device shared by node A using "nbd-client 192.168.<grid id>.<node A id> <ip port of ndb device shared by node A> /dev/nbdZ". In the below sample, the ndb device shared by node A is mapped to ndb150 of node B.
nbd-client 192.168.<grid id>.<node A id> 1234 /dev/nbd150
On node B, Attach hoopY and nbdZ to an available mdX using "mdadm --assemble /dev/mdX --force --run /dev/ndbZ /dev/hoopY". In the below sample, hoop100 and nbd150 are attached to md110
mdadm --assemble /dev/md110 --force --run /dev/hoop100 /dev/nbd150
Execute "3tsrv bd list --all" to verify ndb and mdX are visible
Controller meta and impex volumes are single volume without partition, but boot volume is the partitioned volume. Therefore, their mounting process are different
#file -sL /dev/md50
/dev/md1: x86 boot sector; partition 1: ID=0x83, starthead 1, startsector 64, 3888106 sectors, extended partition table (last)\011, code offset 0x48
#file -sL /dev/md51
/dev/md2: Linux rev 1.0 ext3 filesystem data (needs journal recovery) (large files)
We usually repair its file system in controller
In 2.x, boot volume is a no-partioned volume, so it's repair procedure is similar to meta volume in 3.x
|
Copyright © 2012 CA.
All rights reserved.
|
|