How to Recover an Ibrix Logical Volume (ILV)
Run following command from server that ownes the segment, we run this mkibfs
command to Format new segment with mkibfs:
syntax example: mkibfs device_path fsname fsid segnumber nsegs SS_hostid
1. #/usr/local/ibrix/bin/mkibfs -N 16766464 /dev/ivg1/ilv1 ibrix_fs df8fe7b6-a86b-
4481-9f7c-45224002a39c 16 28 2b356690-999a-49e9-b64f-9bee5ca89722
there are two places you can find the mkibfs command values, one is rtool
enumseg other is ibrix_fs -i ;also note: Must use the -N w/16million inodes
option or a segment with 64bit inode count is created and has potential to
cause issues with NFS client 32bit apps
sample /usr/local/ibrix/bin/rtool enumseg output
segnum=1 of 12 -----------
fsid ........................... 9b9956d5-36f5-4e09-9c62-f73c1ef7d75c
fsname ......................... demofs
device_name .................... /dev/ivg1/ilv1
host_id ........................ 86e0ca36-7b5d-47b0-9b8d-1c7061bde6ec
host_name ...................... fidss1
ref_counter .................... 7
state_flags ........... SEGMENT_LOCAL SEGMENT_PREFERED SEGMEN
2. Once step 1 completes, failback the servers which are in status Up,Failedover
using
#/usr/local/ibrix/bin/ibrix_host -f -U -h hostname
#ibrix_host -l -S [confirm the servers are all Up and no one is in failed over
status!]
Note: For this next step FS is to be mounted mount the fs from the FM
[ibrix_mount -f FSNAME] then Run ibrestitch in screen sessions on each
segment server owner so the process is not interrupted command is as
follows...Mount ALL segments and run ibrestitch phase1 from the segment
owner on each segment one at a time and skip bad segment (in this case 16.)
3. #/usr/local/ibrix/bin/ibrestitch phase1 –y -badseg=16 fs_mountpoint
segment_# > /tmp/seg1_log 2>&1 [bad segment value stays the same =16
for all runs against the other 27 segments remembering to skip over the 1 bad
segment 16, increment the segment_number to match the segment you are
running it against.
4. After all phase1 completes run phase2 the same way as you did in step 2 but,
specify phase2 in the command and not phase1 and change the output log
file to reflect the second phase example of seg1 phase2 log name =
"/tmp/seg1_stitch_p2log 2>&1"