Minimum disk size required for Solaris ZFS pool

Ever wanted to find out the the smallest size disk that one could use in a zfs pool? No? Well, I did (goes to show you how exciting my life really is). It turns out that your disk must be at least 64Megs in size.

I started with 500Meg disks and worked my way down to 50Meg disks. Keep in mind that these are not real disks. They are empty files created by the mkfile command and stored in /tmp/ that I am using as disks. I would not recommend using files in a live system but they work great for tests and experiments.

All my tests were as expected until I created the 50Meg disk/files.

Using the Bash shell, here is what I did:

1. Create the 50Meg disk files

# for i in {1..5}; do mkfile 50m /tmp/disk${i}; done 

This created 5 x 50Meg files in /tmp.

2. I then attempted to create a raidz ZFS pool using those files as my disks.

# zpool create fort raidz /var/tmp/{1..5}
cannot create 'fort': one or more devices is less than the minimum size (64M)

3. Changing the size to 64Meg files worked.

#  for i in {1..5}; do mkfile 64m /tmp/disk${i}; done
# zpool create fort raidz /tmp/disk{1..5}
# zpool list
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
fort                    296M    143K    296M     0%  ONLINE     -

# zfs list
fort   109K   204M  39.1K  /fort

# zpool status -v
  pool: fort
 state: ONLINE
 scrub: none requested

        NAME            STATE     READ WRITE CKSUM
        fort            ONLINE       0     0     0
          raidz1        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

errors: No known data errors

For future reference, your disks must be a equal to or greater than 64Megs in size. Great for 64Meg USB drives, sarcasm included…

About this entry