Wow Craig - thank you so much for that thorough response.
I am only using 1 vdev and I didn''t realize two things:
1) that 50 GB on each of the 300s is essentially wasted. I thought it
would spread 300 GB of parity across all 6 disks, leaving me with 1350
GB of "data" space. Instead, you''re saying 250 GB of parity
is spread
across all 6 disks and an additional 150 GB is ignored, leaving me with,
as you said, 1250 GB "data" space.
2) I wasn''t sure if zpool list described the total before or after
parity was subtracted (and "extra" space ignored). Thanks for clearing
that up.
However, I''m still a little confused how this adds up to 1.11T and
1.36T
for zfs list and zpool list, respectively (my box is under construction
atm so I can''t capture the exact output).
To minimize the wasted space, can I create 1x250 and 1x50 GB partitions
on each of the 300 GB drives, then make them a new raidz vdev?
1st raidz 6x250 GB partitions: 1250 GB data space
2nd raidz 3x50 GB partitions: 100 GB data space
total: 1350 GB data space
Can I pool these together into one large pool? I''m trying to think it
if
would be possible to lose data based on any one disk failure.
As my signature says, despite working for Sun I work on everything *but*
Solaris every day, so I really appreciate the guidance.
Just an FYI - I started with opensolaris but I needed to add a combo
IDE/SATA card to handle all my spare disks (mostly varying sizes) -
which wasn''t recognized by opensolaris. I moved to Linux (which detects
the drives on the I/O card) with zfs-fuse (filesystem in userspace -
steps around CDDL/GPL incompatibility) but I found the features limited
and where it compiled on one distribution that had its own set of
unrelated issues, it failed to compile on another. Currently, I''m
installing OpenSolaris in a VirtualBox VM on a Linux host using raw disk
passthrough so I can use zfs with this I/O card. We''ll see how it
goes :)
Thanks again,
-Brent
On Tue, 2009-03-17 at 18:02 -0700, Craig Cory wrote:> Brent,
>
>
> Brent Wagner wrote:
> > Can someone point me to a document describing how available space in a
> > zfs is calculated or review the data below and tell me what
I''m
> > missing?
> >
> > Thanks in advance,
> > -Brent
> > ==> > I have a home project with 3x250 GB+3x300 GB in raidz, so
I expect to
> > lose 1x300 GB to parity.
> >
> > Total size:1650GB
> > Total size using 1024 to measure: ~1534 GB
> >
> > Expected raidz zpool size after losing 300 GB to parity: ~1350 GB
> > Expected raidz zpool size using 1024 to measure: ~1255.5 GB
> >
> > Actual zpool size: 1.36T
> >
> > Single zfs on the pool - available size: 1.11T
> >
> > I realize zfs is going to have some overhead but 250 GB seems a little
> > excessive...right? I thought maybe the zpool was showing all 6 disks
and
> > the filesystem reflected the remaining space after discounting the
> > parity disk but that doesn''t add up in a way that makes sense
either
> > (see above). Can someone help explain these numbers?
> >
> > Thanks,
> > -Brent
> >
>
>
> When you say "3x250 GB+3x300 GB in raidz" do you mean:
>
> 1) # zpool create mypool raidz 250gb-1 250gb-2 250gb-3 300gb-1 \
> > 300gb-2 300gb-3
>
> or
>
> 2) # zpool create mypool raidz 250gb-1 250gb-2 250gb-3 \
> > raidz 300gb-1 300gb-2 300gb-3
>
> As I understand it, #1 would waste the extra 50gb on each 300gb drive and
give
> you 1500gb usable space. 250gb of that (1/6th) would be parity, so 1250gb
> "data" space.
>
> #2 would make 2 vdevs of 750gb and 900gb totaling 1650gb space. Parity
would
> use 250gb from the 1st vdev and 300gb from the second; so 1100gb of
"data"
> space is available.
>
> Either way, when you list raidz* pools with
> # zpool list
> you see the total physical space. When you list the filesystems with
> # zfs list
> you get the usable filesystem space, which is where the parity is
implemented.
>
> Here''s an example with 250MB files and 300MB files:
>
> For #1 scenario:
>
> # zpool create -f mypool1 raidz /250d1 /250d2 /250d3 /300d1 /300d2 /300d3
>
> # zpool list
> NAME SIZE USED AVAIL CAP HEALTH ALTROOT
> mypool1 1.44G 145K 1.44G 0% ONLINE -
>
> # zfs list
> NAME USED AVAIL REFER MOUNTPOINT
> mypool1 115K 1.16G 40.7K /mypool1
>
> # zpool status
> pool: mypool1
> state: ONLINE
> scrub: none requested
> config:
>
> NAME STATE READ WRITE CKSUM
> mypool1 ONLINE 0 0 0
> raidz1 ONLINE 0 0 0
> /250d1 ONLINE 0 0 0
> /250d2 ONLINE 0 0 0
> /250d3 ONLINE 0 0 0
> /300d1 ONLINE 0 0 0
> /300d2 ONLINE 0 0 0
> /300d3 ONLINE 0 0 0
>
>
------------------------------------------------------------------------------
> And for #2:
> # zpool create -f mypool2 raidz /250d1 /250d2 /250d3 raidz /300d1 /300d2
/300d3
>
> # zpool list
> NAME SIZE USED AVAIL CAP HEALTH ALTROOT
> mypool2 1.58G 157K 1.58G 0% ONLINE -
>
> # zfs list
> NAME USED AVAIL REFER MOUNTPOINT
> mypool2 101K 1.02G 32.6K /mypool2
>
> # zpool status
> pool: mypool2
> state: ONLINE
> scrub: none requested
> config:
>
> NAME STATE READ WRITE CKSUM
> mypool2 ONLINE 0 0 0
> raidz1 ONLINE 0 0 0
> /250d1 ONLINE 0 0 0
> /250d2 ONLINE 0 0 0
> /250d3 ONLINE 0 0 0
> raidz1 ONLINE 0 0 0
> /300d1 ONLINE 0 0 0
> /300d2 ONLINE 0 0 0
> /300d3 ONLINE 0 0 0
>
> errors: No known data errors
> -------------------------------------------------------------------
>
> Does this describe what you''re seeing?
>
>
> Craig
>
>
>
> --
> Craig Cory
> Senior Instructor :: ExitCertified
> : Sun Certified System Administrator
> : Sun Certified Network Administrator
> : Sun Certified Security Administrator
> : Veritas Certified Instructor
>
> 8950 Cal Center Drive
> Bldg 1, Suite 110
> Sacramento, California 95826
> [e] craig.cory at exitcertified.com
> [p] 916.669.3970
> [f] 916.669.3977
> [w] WWW.EXITCERTIFIED.COM
> +---------------------------------------------------------------------+
> OTTAWA | SACRAMENTO | MONTREAL | LAS VEGAS | QUEBEC CITY | CALGARY
> SAN FRANCISCO | VANCOUVER | REGINA | WINNIPEG | TORONTO
>
--
Brent Wagner
Support Engineer - Windows/Linux/VMware
Sun Microsystems, Inc.