A little bit of knowledge is a dangerous thing.

I just wrote to the wrong lv with a dd and lost 5 days of work on a 
project. Dumb, dumb, dumb.

Ben M. wrote:
> Ah, vgsplit. That is likely the answer. I was completely unfamiliar with 
> that command.
> 
> Going to try that now.
> 
> Good stuff again, thanks for the simple straightforward procedures.
> 
> Ben M. wrote:
>> Oops, I pasted in the wrong notes of what I was sketching out... very 
>> sorry about that confusion. Totally botched up.
>>
>> My question about your method was that a pvmove could be done to a 
>> snapshot, which I am going to answer myself by trying it right now. I 
>> thought that snapshot were inexorably connected to the source.
>>
>> If there is a problem I am sure I will see the errors. heh.
>>
>>
>>
>> Christopher G. Stach II wrote:
>>> ----- "Ben M." <cen...@rivint.com> wrote:
>>>
>>>> Does this appear to be a sound procedure? I have one inline question.
>>> I read your version of the procedure and it looks like you want to skip the 
>>> pvmove. That's fine, but it means more downtime (an unreliable estimate is 
>>> one minuted per GB). In that case, you don't even need the snapshot. You 
>>> won't need a point in time copy if you are copying from a stable source.
>>>
>>>> 1. Shutdown domU source (source lvname = win2k8-source) which is never
>>>> file mounted in Xen dom0, just "lvm'd".
>>> Yeah, just turning off the guest and making sure it doesn't have the ``o'' 
>>> flag set in the ``lvs'' output is enough. I hope that nothing else had it 
>>> open (for writing) while your guest was running. :)
>>>
>>>> 2. snapshot source win2k8-source to win2k8-snapshot
>>>> [How long do I wait before bringing DomU source back up? Is there in 
>>>> indication when it is done? It is approx. 50gig]
>>> A few milliseconds. It will return almost immediately.
>>>
>>>> 3. Bring up domU (Is this necessary if seeking accurate data state, 
>>>> would rather keep offline on a weekend dayrather than lose data
>>>> entries.)
>>> The snapshot won't change. It's not necessary if you don't need your guest 
>>> to be up. In fact, you can skip the whole snapshot bit if you don't care 
>>> about downtime for your guest. Just dd from win2k8-source.
>>>
>>> You can't perform this step if you aren't going to use pvmove. Your source 
>>> will change and your snapshot will be out of date. You would lose all of 
>>> your changes between the snapshot and when you reboot the guest the second 
>>> time.
>>>
>>>> 4. Create identical lv extent space (win3k8-target) on target pv/vg
>>> Yes, but win2k8-target. :) Since you are copying to a new VG, you can just 
>>> keep the LV name the same.
>>>
>>>> 5. dd if=/dev/vgsnapshotsource/win2k8-snapshot 
>>>> of=/dev/vgtarget/win2k8-target
>>> Yes, but you can specify a larger block size and it will take less time. I 
>>> personally just default to using bs=1048576 for most things, even if it's 
>>> not ideal.
>>>
>>>> 6. Shutdown DomU, change xen win2k8-source domU conf file phy:
>>>> reference to win2k8-target
>>> Nope. Keep it the same. You don't want to run from the snapshot or the 
>>> backup copy, unless you're skipping the pvmove. If you are, you want to 
>>> change the VG and/or LV name to the non-backup copy.
>>>
>>>> 6a. Drop snapshot, rename source lv to win2k8-old
>>> If you were going with pvmove, you would perform that after this step.
>>>
>>>> 7. Start "new" domU.
>>>> 8. test extensively, if works, run for few a day or two. Keep *-old as
>>>> fallback for a week or so. Then move to an archive using dd.
>>> So, we have two possible procedures intermingled here. The major 
>>> differences are Procedure A (lots of downtime) and Procedure B (minimal 
>>> downtime).
>>>
>>> Procedure A
>>> ~~~~~~~~~~~
>>> 1. Create target LV with geometry identical to source LV geometry
>>> 2. Stop guest.
>>> 3. dd
>>> 4. Modify guest configuration to point to target LV
>>> 5. Start guest
>>>
>>> This is the procedure to use if simplicity is desired. As a perk, your 
>>> source LV becomes your backup.
>>>
>>> Procedure B
>>> ~~~~~~~~~~~
>>> 1. Create backup LV with geometry identical to source LV geometry
>>> 2. Stop guest.
>>> 3. Create snapshot of source LV
>>> 4. Start guest
>>> 5. dd from snapshot of source LV to backup LV
>>> 6. Drop snapshot of source LV
>>> 7. vgextend source VG with additional PV
>>> 7. pvmove source LV to additional PV
>>> (opt) 8. vgsplit [source VG into additional VG with additional PV]
>>> (opt) 9. Modify guest configuration [to point to source LV on additional VG]
>>>
>>> Procedure B can be different for Linux guests in that, depending upon your 
>>> guest filesystem choices (ext3 journal, in particular) and site specific 
>>> caching issues, step 2 could be "Pause guest" and step 4 would then be 
>>> "Resume guest".
>>>
>>> Depending upon how you handle your PVs and VGs in the optional 8 and 9 
>>> steps, you may need to shut down your guest(s). Your desire to have one VG 
>>> per PV will probably necessitate that being done eventually.
>>>
>> _______________________________________________
>> CentOS-virt mailing list
>> CentOS-virt@centos.org
>> http://lists.centos.org/mailman/listinfo/centos-virt
>>
> 
> _______________________________________________
> CentOS-virt mailing list
> CentOS-virt@centos.org
> http://lists.centos.org/mailman/listinfo/centos-virt
> 

_______________________________________________
CentOS-virt mailing list
CentOS-virt@centos.org
http://lists.centos.org/mailman/listinfo/centos-virt

Reply via email to