renegm
Cadet
- Joined
- Dec 18, 2015
- Messages
- 6
Hi
This is my first post, my English and my knowledge are not perfect, sorry. I want to hear suggestions for improve performance in my FreeNAS box.
My Hardware configuration:
Supermicro A1SAI-2750F, 32GB, 2x4TB HDD, 240GB SSD. Full list in: http://secure.newegg.com/WishList/PublicWishDetail.aspx?WishListNumber=29059826
Hyper-V 2012 R2.
FreeNAS VM configuration: 8 Cores, 16GB, VHDD 16GB boot on SSD, VHDD 20GB on SDD for other FreeNAS stuff and 2xHDD 4TB (direct attach, not virtualized) in stripe.
Little FAQ
1) Why virtualized? Uuu... short answer: because.
2) Why Hyper-V? I want direct, raw access to physical hard drives. This board does not support VT-d.
3) Why stripe? There are only 2 drives. I want a simple file server carrying not critical data. This server will contains Windows 10 File-History backups and time-line backups for a few machine. This is not a "my house burned down" backup.
Mini how-to or what i did for FreeNAS on Hyper-V.
Hyper-V network legacy drivers sucks. And you need HV-storage driver for Physical HDD access. FreeBSD 10 contains drivers but FreeBSD 9 (FreeNAS kernel) don’t. So, what you need?
1) First step compile drivers: http://www.freshports.org/emulators/hyperv-is/ in whatever FreeBSD 9 machine. (I can share the drivers if someone want it. With a little tip: Do not trust in a random internet guy.)
I put the drivers in an ISO file but you can use another method. (4 little files: hv_vmbus.ko, hv_utils.ko, hv_netvsc.ko, hv_storvsc.ko)
2) Create FreeNAS VM using normal network (no legacy) and install. Reboot, and replace installer media with driver’s media. You don't have network or SCSI drives access yet. Go to shell, mount your HV_drivers CD and copy files to /boot/modules
3) Load drivers:
kldload /boot/modules/hv_vmbus.ko
kldload /boot/modules/hv_utils.ko
kldload /boot/modules/hv_netvsc.ko
kldload /boot/modules/hv_storvsc.ko
4) FreeNAS can see network adapter and SCSI disks now (temporarily, you need to add to loader). Exit to Console Setup and configure Network Interfaces
5) Open your browser and go to FreeNAS web interface. Skip wizard (You can do that later) go to System/Tunables and add drivers tunables (4 tunables one for each one. (DriverName_load means filename without dot and extension, e.g. hv_netvsc_load):
Variable: DriverName_load
Value: YES
Type: Loader
Enabled: Checked
6) Cross your fingers and reboot. Everything must be fine. Enjoy.
My tests
Same virtual machine (I shutdown VM and select the appropriate boot VHDD) Sharing Cifs, ZFS no compression, 1x4GB file to and from my PC, all hardware connected to 1GB Netgear switch)
----------------
NAS4Free and FreeBSD 10 (out of the box, NAS4Free slightly better than FreeBSD 10)
Write 70~74 MBs
Read 85~95 MBs
FreeBSD 9 (out of the box)
Write ~43 MBs (min 25MBs max 46MBs)
Read ~63 MBs
FreeNAS (with Enabled autotune)
Write ~40 MBs (min 20MBs max 42MBs)
Read ~60 MBs stable
----------------
Scrubs run 130~140 MBs in all machines. There is not difference here. I think network is the problem. Iperf return ~500 Mbits/sec on FreeBSD 9 and FreeNAS, and >800 in NAS4Free and FreeBSD 10.
Clearly, Kernel 10 with integrated drivers has an edge over Kernel 9 + module drivers.
NAS4Free is a great product, don't mess with that. But I prefer FreeNAS jails and flexibility over speed and current kernel of NAS4Free. I can wait for version 10 FreeNAS for full speed. But in my domestic undocumented test FreeBSD 9 does better than FreeNAS for a little.
My question is: Who is eating my MBs? I don’t expect full speed but every MBs will be welcome. More Ram?, Any tweak? Other ideas?
Thanks you.
P.S. I don't want to initiate a flame war. And I don’t want to drastically change my configuration either (put more HDD , buy another server, change to VMWare etc.)
This is my first post, my English and my knowledge are not perfect, sorry. I want to hear suggestions for improve performance in my FreeNAS box.
My Hardware configuration:
Supermicro A1SAI-2750F, 32GB, 2x4TB HDD, 240GB SSD. Full list in: http://secure.newegg.com/WishList/PublicWishDetail.aspx?WishListNumber=29059826
Hyper-V 2012 R2.
FreeNAS VM configuration: 8 Cores, 16GB, VHDD 16GB boot on SSD, VHDD 20GB on SDD for other FreeNAS stuff and 2xHDD 4TB (direct attach, not virtualized) in stripe.
Little FAQ
1) Why virtualized? Uuu... short answer: because.
2) Why Hyper-V? I want direct, raw access to physical hard drives. This board does not support VT-d.
3) Why stripe? There are only 2 drives. I want a simple file server carrying not critical data. This server will contains Windows 10 File-History backups and time-line backups for a few machine. This is not a "my house burned down" backup.
Mini how-to or what i did for FreeNAS on Hyper-V.
Hyper-V network legacy drivers sucks. And you need HV-storage driver for Physical HDD access. FreeBSD 10 contains drivers but FreeBSD 9 (FreeNAS kernel) don’t. So, what you need?
1) First step compile drivers: http://www.freshports.org/emulators/hyperv-is/ in whatever FreeBSD 9 machine. (I can share the drivers if someone want it. With a little tip: Do not trust in a random internet guy.)
I put the drivers in an ISO file but you can use another method. (4 little files: hv_vmbus.ko, hv_utils.ko, hv_netvsc.ko, hv_storvsc.ko)
2) Create FreeNAS VM using normal network (no legacy) and install. Reboot, and replace installer media with driver’s media. You don't have network or SCSI drives access yet. Go to shell, mount your HV_drivers CD and copy files to /boot/modules
3) Load drivers:
kldload /boot/modules/hv_vmbus.ko
kldload /boot/modules/hv_utils.ko
kldload /boot/modules/hv_netvsc.ko
kldload /boot/modules/hv_storvsc.ko
4) FreeNAS can see network adapter and SCSI disks now (temporarily, you need to add to loader). Exit to Console Setup and configure Network Interfaces
5) Open your browser and go to FreeNAS web interface. Skip wizard (You can do that later) go to System/Tunables and add drivers tunables (4 tunables one for each one. (DriverName_load means filename without dot and extension, e.g. hv_netvsc_load):
Variable: DriverName_load
Value: YES
Type: Loader
Enabled: Checked
6) Cross your fingers and reboot. Everything must be fine. Enjoy.
My tests
Same virtual machine (I shutdown VM and select the appropriate boot VHDD) Sharing Cifs, ZFS no compression, 1x4GB file to and from my PC, all hardware connected to 1GB Netgear switch)
----------------
NAS4Free and FreeBSD 10 (out of the box, NAS4Free slightly better than FreeBSD 10)
Write 70~74 MBs
Read 85~95 MBs
FreeBSD 9 (out of the box)
Write ~43 MBs (min 25MBs max 46MBs)
Read ~63 MBs
FreeNAS (with Enabled autotune)
Write ~40 MBs (min 20MBs max 42MBs)
Read ~60 MBs stable
----------------
Scrubs run 130~140 MBs in all machines. There is not difference here. I think network is the problem. Iperf return ~500 Mbits/sec on FreeBSD 9 and FreeNAS, and >800 in NAS4Free and FreeBSD 10.
Clearly, Kernel 10 with integrated drivers has an edge over Kernel 9 + module drivers.
NAS4Free is a great product, don't mess with that. But I prefer FreeNAS jails and flexibility over speed and current kernel of NAS4Free. I can wait for version 10 FreeNAS for full speed. But in my domestic undocumented test FreeBSD 9 does better than FreeNAS for a little.
My question is: Who is eating my MBs? I don’t expect full speed but every MBs will be welcome. More Ram?, Any tweak? Other ideas?
Thanks you.
P.S. I don't want to initiate a flame war. And I don’t want to drastically change my configuration either (put more HDD , buy another server, change to VMWare etc.)