Re: BSD Trivia spørgsmål of the week - #1

From: Søren Hansen (none@svindler--gmail.com.lh.bsd-dk.dk)
Date: Thu 16 Nov 2006 - 13:45:05 CET


Date: Thu, 16 Nov 2006 13:45:05 +0100
From: "Søren Hansen" <none@svindler--gmail.com.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: BSD Trivia spørgsmål of the week - #1

Hej Phil,
Jeg takker mange gange for valget, og du har selvfølgelig fuldstændig
ret i dine forbedringsforslag. En anden gang må jeg huske det gamle
råd: "Thimk, write, spell check, send"

Måske kunne man lade konkurrencen løbe lidt længere en anden gang? Det
kan jo være, at nogen havde en endnu bedre idé. Jeg havde foreksempel
gerne set nogen komme med noget i stil med
http://sourceforge.net/projects/usbip og en usb disk, bare til bsd.

Mvh
Søren

Den 14/11/06 skrev Phil Regnauld <none@regnauld--x0.dk.lh.bsd-dk.dk>:
> On Tue, Nov 14, 2006 at 05:17:53PM +0100, Søren Hansen wrote:
> > Glimrende initiativ!
>
> :)
>
> We have a winner:
>
> > Løsning 3)
> > Igen, hvis der er en enkelt inode ledig, kan du lave en virtuel
> > partition, der er stor nok til at holde de nødvendige filer med med
> > driveren md. Den kan lave det i memory eller i en fil, alt efter, hvad
> > du vurderer der er behov for.
> > Tag udgangspunkt i "man mdconfig":
> > To create a 5MB file-backed disk:
> >
> > dd if=/dev/zero of=somebackingfile bs=1k count=5k
> > mdconfig -a -t vnode -f somebackingfile -u 0
> > bsdlabel -w md0 auto
> > newfs md0c
> > mount /dev/md0c /mnt
>
> Det er i hvertfald den løsning som jeg havde fundet på dengang
> jeg løbede tør for plads -- jeg flyttede midlertidigt 1 fil
> for at kunne oprette "newdisk.img" ved at køre:
>
> truncate +10G newdisk.img
>
> (fordelen med trunate er at filen er "sparse", dvs. at den kun allokerer
> disk blocks on demand. Til gengæld bliver filen temmelig fragmenteret --
> så dd er også en god løsning).
>
> Løsning 2 (tar) er også korrekt, hvis man ikke har brug for de
> filer. Men hvis idéen er at alle filer er vigtige, så er det nok
> smartest at lave som du beskriver, pånær et punkt:
>
> > /mnt skal erstattes med et directory, der ligger på den disk, hvor der
> > er plads men mangel på inoder. Hvis du ikke kan bruge et eksisterende
> > directory, kræver denne løsning en inode mere fri.
> > Nu kan du flytte filer over på "/mnt" og derefter bruge symlinks. Det
> > kræver selvfølgelig, at du kan flytte filerne directory-vis, da en
> > symlink også tager en inode.
>
> Det er rigtigt at det ikke hjælper at lave 10 symlinks til 10 filer,
> man skal helst vælge en directory hvor der er mange filer, rename
> directory, og mounte den nye volum på:
>
> truncate +10G newdisk.img # bruger 1 inode
> mdconfig -a -t vnode -f newdisk.img -u 0
> bsdlabel -w md0 auto
> newfs -U /dev/md0c
>
> mv .../bigfolder .../bigfolder.old
> mkdir .../bigfolder # bruger 1 inode
> mount /dev/md0c .../bigfolder
> mv bigfolder.old/* .../bigfolder/ && \
> rmdir bigfolder.old # frigør 1 inode
>
> Man kan også kan være lidt evil og lave en sparse fil som
> er samme størrelse som selve partitionen, bare med flere inodes / blocks
> (newfs -i), og så flytte ALLE filer til den nye volum. Backing filens
> diskforbrug vokser i takt med flytning af filer, indtil man har flyttet
> alle filer over til den nye volum -- så er der til sidst kun 1 fil
> på den oprindelig partitionen.
>
>
> > Løsning 5)
> > NFS. Hvis du ikke allerede har NFS oppe, så er det ikke lige oplagt
> > som en nødløsning, medmindre du forventer nødløsningen skal køre i
> > længere tid.
>
> Good point. Det kan være en god løsning.
>
> Du skriver bare en adresse til mig privat, og den ønskede størrelse,
> og fallback size hvis ikke vi har det, så får du en NetBSD t-shirt :)
>
> Tak til de andre for deres svar!
>
> Phil
>
>



This archive was generated by hypermail 2b30 : Thu 30 Nov 2006 - 23:00:03 CET