Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Jan 2014 11:42:52 +0000
From:      Kaya Saman <kayasaman@gmail.com>
To:        =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
Cc:        freebsd-questions <freebsd-questions@freebsd.org>
Subject:   Re: ZFS confusion
Message-ID:  <52E6463C.6090805@gmail.com>
In-Reply-To: <alpine.BSF.2.00.1401271149160.4811@mail.fig.ol.no>
References:  <52E40C82.7050302@gmail.com> <alpine.BSF.2.00.1401270944100.4811@mail.fig.ol.no> <52E62DFF.3010600@gmail.com> <alpine.BSF.2.00.1401271149160.4811@mail.fig.ol.no>

next in thread | previous in thread | raw e-mail | index | archive | help
Many thanks everyone (Trond, Dennis, Steve)!!

So RAIDz2 or 3 is going to be preferred per the advice given.

Now I just need to figure out how to make that work best with my current 
5 block of disks....  perhaps wait for a while then add some more disks 
in the mix then create the raidz(x) platform??

It would be really good if raidz could be expandable, ie by adding extra 
'new' disks into the same vdev.

Anyhow, luckily I have multiple backups of everything in any case; just 
flying around on loose disks though :-(


Regards,

Kaya

On 01/27/2014 11:20 AM, Trond Endrestøl wrote:
> On Mon, 27 Jan 2014 09:59-0000, Kaya Saman wrote:
>
>> Many thanks Trond for the response....
>>
>> I was getting worried for a sec there :-)
>>
>> On 01/27/2014 09:08 AM, Trond Endrestøl wrote:
>>> On Sat, 25 Jan 2014 19:12-0000, Kaya Saman wrote:
>>>
>>> [...]
>>> No one's answered this, so I'll just give you my 2 cents.
>>>
>>> Triple parity means you're using storage capacity equivalent of three
>>> drives for parity alone. If you use five drives in total, this gives
>>> you 2 drives worth of real data and 3 drives worth of parity. In other
>>> words, you should really consider using a lot more drives when using
>>> triple parity, say nine drives.
>> So, basically if I have (just as silly example); 5x drives of 100MB capacity,
>> this would equal 500MB in total.
>>
>> Meaning that only 200MB would be usable.....
> Also remember a couple of things:
>
> ZFS uses dynamically stripe widths, not fixed ones as HW RAID. A 37K
> file will occupy 37K, rounded up to the nearest integer of disk
> blocks, plus the space needed for parity and metadata.
>
> Without a dedicated ZIL, ZFS will also use some of the available space
> for housekeeping, e.g. ZIL.
>
> You shouldn't fill a pool in production completely with data, leaving
> no room for any COW operations.
>
>> Having just done a quick experiment:
>>
>> zpool create test_pool raidz3 /tmp/disk1 /tmp/disk2 /tmp/disk3 /tmp/disk4
>> /tmp/disk5
>>
>> I get:
>>
>> test_pool    476M   304K   476M     0%  1.00x  ONLINE  -
>>
>> then writing a 300M file to pool:
>>
>> dd if=/dev/zero of=/test_pool/file bs=300M count=1
>> dd: /test_pool/file: No space left on device
>>
>> test_pool    476M   396M  79.8M    83%  1.00x  ONLINE  -
>>
>> du -sch /test_pool/file
>> 157M    /test_pool/file
>> 157M    total
>>
>> So I guess, now I have to ask; when building a disk pool, what's the best
>> option to go for between capacity and redundancy?
> If you value your data and your data grows, as it usually does, go for
> both. I hope you're adding some form of backup to the mix, as ZFS is
> no substitute for doing proper backups to independent media.
>
>> In my case I gradually want to expand my storage when I need it, so to
>> maximize capacity RAID0 would be the easiest. This doesn't give me any
>> redundancy however, unless I use RAID1+0 but then I loose physical capacity
>> due to the mirrors.
>>
>>
>> Would it be better to create a raidz1 pool then just add raidz1 pools to the
>> master as time goes by?
>>
>> As in:
>>
>> zpool create test_pool raidz1 /tmp/disk1 /tmp/disk2 /tmp/disk3 /tmp/disk4
>> /tmp/disk5
>>
>>
>> zpool add test_pool raidz1 /tmp/disk6 /tmp/disk7 /tmp/disk8 /tmp/disk9
>> /tmp/disk10
>>
>>
>> dd if=/dev/zero of=/test_pool/file bs=600M count=1                    1+0
>> records in
>> 1+0 records out
>> 629145600 bytes transferred in 190.069986 secs (3310073 bytes/sec)
>>
>>
>> Then running a 'zpool list' gets:
>>
>> test_pool    952M   751M   201M    78%  1.00x  ONLINE  -
>>
>>
>> So virtually out of:
>>
>>
>>      NAME             STATE     READ WRITE CKSUM
>>      test_pool        ONLINE       0     0     0
>>        raidz1-0       ONLINE       0     0     0
>>          /tmp/disk1   ONLINE       0     0     0
>>          /tmp/disk2   ONLINE       0     0     0
>>          /tmp/disk3   ONLINE       0     0     0
>>          /tmp/disk4   ONLINE       0     0     0
>>          /tmp/disk5   ONLINE       0     0     0
>>        raidz1-1       ONLINE       0     0     0
>>          /tmp/disk6   ONLINE       0     0     0
>>          /tmp/disk7   ONLINE       0     0     0
>>          /tmp/disk8   ONLINE       0     0     0
>>          /tmp/disk9   ONLINE       0     0     0
>>          /tmp/disk10  ONLINE       0     0     0
>>
>> errors: No known data errors
>>
>>
>> I have 8 disks usable with 2x disks for parity.... if my understanding is
>> correct.
> Correct. One "parity drive" evenly (or close to evenly) spread over
> the members in each raidz1 vdev.
>
> I just realized having multiple zraidN vdevs reduces the time needed
> for resilvering. Just don't make each vdev too small, i.e. with too
> few drives.
>
> As other's have told you, consider raidz2 or raidz3, as drives from
> the same batch and with equal wear and tear, might fail more or less
> simultaneously.
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52E6463C.6090805>