Thanks a lot, David, for your detailed reply.
I've followed your indications and now I am able to recover from my
venti backup :-)
I must confess that I am puzzled, because some sizes and most seeks
for dd are off by 1 block from what I expect. Particulary,
why do you
% dd -if arenas2.img -of arenapart -bs 8192 -count 97
% dd -if arenas1.img -of arenas -bs 8192 -iseek 97 -count 65536
when the first arena starts after 98 blocks from the beginning of the file?

2012/1/20 David du Colombier <[email protected]>:
>> that's only 98 blocks of 8192 bytes, not 128 as you mention.
>
> Sorry, I got confused. It's 98 blocks on arena partition and
> 128 blocks on isect partition.
>
> I just tried. This is what I did.
>
> The goal is to manually recopy the first arena from
> the first Venti (arenas1.img) to the second Venti (arenas2.img).
>
> It will work for you as long as you adjust the partition
> names, the number of arenas and the sizes.
>
> # first venti
>
> % dd -if /dev/zero -of arenas1.img -bs 8192 -count 131072
> % dd -if /dev/zero -of isect1.img -bs 8192 -count 16384
> % dd -if /dev/zero -of bloom1.img -bs 8192 -count 8192
> % venti/fmtarenas arenas arenas1.img
> % venti/fmtisect isect isect1.img
> % venti/fmtbloom bloom1.img
> % echo 'index main
>    isect isect1.img
>    arenas arenas1.img
>    bloom bloom1.img' | venti/conf -w arenas1.img
> % venti/fmtindex arenas1.img
> % venti=127.1
> % venti/venti -c arenas1.img -m 20 -h tcp!127.1!8000
> % vac /sys/src/9/pc
> % hget http://127.1:8000/index
> index=main version=1 blocksize=8192 tabsize=524288
>    buckets=16287 div=263706
>    sect=isect for buckets [0,16287) buckmax=215 arena=arenas0 at index 
> [1048576,537903104)
>    arena='arenas0' on arenas1.img at [802816,537673728)
>    version=5 created=1327069595 modified=1327069627
>    written: clumps=669 compressed clumps=600 data=4,251,763 compressed 
> data=1,174,341 storage=1,216,488
>    indexed: clumps=0 compressed clumps=0 data=0 compressed data=0 storage=0
> % venti/sync
> % Kill venti | rc
> % bc
> 802816/8192 = 98
> 537673728/8192 = 65634
> 65634-98 = 65536
>
> # second venti
>
> % dd -if /dev/zero -of arenas2.img -bs 8192 -count 65633
> % dd -if /dev/zero -of isect2.img -bs 8192 -count 16384
> % dd -if /dev/zero -of bloom2.img -bs 8192 -count 8192
> % venti/fmtarenas arenas arenas2.img
> % venti/fmtisect isect isect2.img
> % venti/fmtbloom bloom2.img
> % echo 'index main
>    isect isect2.img
>    arenas arenas2.img
>    bloom bloom2.img' | venti/conf -w arenas2.img
> % venti/fmtindex arenas2.img
> % dd -if arenas2.img -of arenapart -bs 8192 -count 97
> % dd -if arenas1.img -of arenas -bs 8192 -iseek 97 -count 65536
> % cat arenapart arenas > arenas2.img
> % rm -f arenapart arenas
> % venti/buildindex -b arenas2.img
> 0 clumps, 16,287 buckets
> 2012/0120 14:29:29 read index
> venti/buildindex: brand-new index, no work to do
> 2012/0120 14:29:29 arena arenas0: 669 entries
> % venti=127.1
> % venti/venti -c arenas2.img -m 20 -h tcp!127.1!8000
> term% hget http://127.1:8000/index
> index=main version=1 blocksize=8192 tabsize=524288
>    buckets=16287 div=263706
>    sect=isect for buckets [0,16287) buckmax=215 arena=arenas0 at index 
> [1048576,537903104)
>    arena='arenas0' on arenas2.img at [802816,537673728)
>    version=5 created=1327069595 modified=1327069627
>    written: clumps=669 compressed clumps=600 data=4,251,763 compressed 
> data=1,174,341 storage=1,216,488
>    indexed: clumps=0 compressed clumps=0 data=0 compressed data=0
>    storage=0
>
> Honestly, I think you should just use venti/wrarena to write
> backed up arenas to a running Venti. It's much easier.
>
> --
> David du Colombier
>



-- 
Hugo

Reply via email to