# What is the fastest option for different size 2 disks?



## lemurid (Dec 27, 2011)

I have a small FBSD FreeBSD 8.2 home server with the following disks inside:

DISK A - System
DISKS B, C, D, E - are in a RaidZ holding all my precious info and backups (later dumped to a removable disk as well). 

*DISKS X,Z* - are two 2,5 WD Blue disks sized 320Gb and 250Gb which are used for torrents (transmission) and for holding web site files. Have been running them as a ZFS pool (compression=off, even played with disabling checksumming) but i'm not quite happy with perfomance (system is an amd64 with some zfs tuning). Under heavy transmission load (50mbps down, 30 mbps up) they become sluggish and the whole system becomes a little unresponsive. 

So the question is - what is the fastest option for running those disks (X & Z) without the need for any data redundancy writing and reading chaotic chunks of data (torrents)? Striping is not an option as they are differently sized?


----------



## fluca1978 (Dec 27, 2011)

lemurid said:
			
		

> So the question is - what is the fastest option for running those disks (X & Z) without the need for any data redundancy writing and reading chaotic chunks of data (torrents)? Striping is not an option as they are differently sized?



WHy do you use ZFS if you don't need data checksumming? I think if you use UFS (and maybe GEOM striping) you will happy and the system will consume less memory. I'm not sure performances will be better, but I think they should.


----------



## lemurid (Dec 27, 2011)

Isn't GEOM striping working only on the same size HDDs?


----------



## wblock@ (Dec 27, 2011)

Untested, but it ought to be possible to use the 250G drive along with a 250G partition on the 320G drive.


----------



## lemurid (Dec 27, 2011)

wblock@ said:
			
		

> Untested, but it ought to be possible to use the 250G drive along with a 250G partition on the 320G drive.



So something like fdisk - create partition on a 500gb one (ada0)
Then
[CMD=]gstripe label -v st0 /dev/ada5 /dev/ada0s1[/cmd]
[CMD=]bsdlabel -wB /dev/stripe/st0[/cmd]
[CMD=]newfs -U /dev/stripe/st0a[/cmd]

Where should I dig in documentation to combine stripe and the remaining space as one mount point? So for transmission it will just look like /torrents?


----------



## fluca1978 (Dec 28, 2011)

I don't think it is possible to combine the remaining space with the original one, even with the unionfs. Why not mounting the remaining space as a folder under the striping device?


----------



## wblock@ (Dec 28, 2011)

lemurid said:
			
		

> So something like fdisk - create partition on a 500gb one (ada0)
> Then
> [CMD=]gstripe label -v st0 /dev/ada5 /dev/ada0s1[/cmd]
> [CMD=]bsdlabel -wB /dev/stripe/st0[/cmd]
> [CMD=]newfs -U /dev/stripe/st0a[/cmd]



bsdlabel(8) is not necessary there, the filesystem can just be written on st0.  I would use gpart(8) to create a partition on the 250G drive, then an identically-sized one on the 320.



> Where should I dig in documentation to combine stripe and the remaining space as one mount point? So for transmission it will just look like /torrents?



I don't know of a good way to do that.  Accessing data on the extra 70G on the 320 drive could slow down st0 from head contention.  If st0 is busy, anyway; if it isn't, why bother with striping?  If you just want to combine the space on the two drives, maybe gconcat(8)?


----------



## phoenix (Jan 1, 2012)

lemurid said:
			
		

> So something like fdisk - create partition on a 500gb one (ada0)
> Then
> [CMD=]gstripe label -v st0 /dev/ada5 /dev/ada0s1[/cmd]
> [CMD=]bsdlabel -wB /dev/stripe/st0[/cmd]
> [CMD=]newfs -U /dev/stripe/st0a[/cmd]



The following should work for GPT partitioning (the way of the future):

```
# gpart create -s GPT ada5
# gpart add -t freebsd-ufs -b 2048 ada5
# gpart show ada5
<check number of sectors used for partition 1>
# gpart create -s GPT ada0
# gpart add -t freebsd-ufs -b 2048 -s <number of sectors from above> ada0
# gstripe label -v st0 /dev/ada5p1 /dev/ada0p1
# newfs -U /dev/stripe/st0
```



> Where should I dig in documentation to combine stripe and the remaining space as one mount point? So for transmission it will just look like /torrents?



You really don't want to "append" the extra 120 GB into the stripe.  You'll kill your disk performance, as the heads thrash between the two partitions.  Either forget about that extra space, or use it for something completely different, preferably something that won't access the disk very often.


----------

