FreeNAS tricks

root's picture

You have gigabit network adapters and your speed is up to 100 megabits only?

You have to change the MTU on all adapters in your network! Below is speed test with mtu 1500 vs. mtu 9000:

Gigabit with mtu 1500 - 300Mbits/sec average:

root@uranus:~# iperf -c 192.168.99.12 -B 192.168.99.10 -i 1 -t 10
------------------------------------------------------------
Client connecting to 192.168.99.12, TCP port 5001
Binding to local address 192.168.99.10
TCP window size: 96.7 KByte (default)
------------------------------------------------------------
[  3] local 192.168.99.10 port 5001 connected with 192.168.99.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  19.8 MBytes   166 Mbits/sec
[  3]  1.0- 2.0 sec  37.8 MBytes   317 Mbits/sec
[  3]  2.0- 3.0 sec  33.9 MBytes   284 Mbits/sec
[  3]  3.0- 4.0 sec  36.8 MBytes   308 Mbits/sec
[  3]  4.0- 5.0 sec  40.6 MBytes   341 Mbits/sec
[  3]  5.0- 6.0 sec  42.1 MBytes   353 Mbits/sec
[  3]  6.0- 7.0 sec  45.9 MBytes   385 Mbits/sec
[  3]  7.0- 8.0 sec  27.9 MBytes   234 Mbits/sec
[  3]  8.0- 9.0 sec  38.6 MBytes   324 Mbits/sec
[  3]  9.0-10.0 sec  43.4 MBytes   364 Mbits/sec
[  3]  0.0-10.0 sec   367 MBytes   307 Mbits/sec

Gigabit with mtu 9000 - 1.20 Gbits/sec average:

root@uranus:~# iperf -c 192.168.99.12 -B 192.168.99.10 -i 1 -t 10
------------------------------------------------------------
Client connecting to 192.168.99.12, TCP port 5001
Binding to local address 192.168.99.10
TCP window size: 96.7 KByte (default)
------------------------------------------------------------
[  3] local 192.168.99.10 port 52430 connected with 192.168.99.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   144 MBytes  1.20 Gbits/sec
[  3]  1.0- 2.0 sec   151 MBytes  1.27 Gbits/sec
[  3]  2.0- 3.0 sec   153 MBytes  1.28 Gbits/sec
[  3]  3.0- 4.0 sec   163 MBytes  1.37 Gbits/sec
[  3]  4.0- 5.0 sec   152 MBytes  1.27 Gbits/sec
[  3]  5.0- 6.0 sec   148 MBytes  1.24 Gbits/sec
[  3]  6.0- 7.0 sec   150 MBytes  1.25 Gbits/sec
[  3]  7.0- 8.0 sec   160 MBytes  1.34 Gbits/sec
[  3]  8.0- 9.0 sec   152 MBytes  1.28 Gbits/sec
[  3]  9.0-10.0 sec   147 MBytes  1.23 Gbits/sec
[  3]  0.0-10.0 sec  1.48 GBytes  1.27 Gbits/sec

See the difference? :)

How to list the available disks:

[root@sun] ~# camcontrol devlist
<VBOX HARDDISK 1.0>                at scbus0 target 0 lun 0 (da0,pass0)
<VBOX HARDDISK 1.0>                at scbus0 target 1 lun 0 (da1,pass1)
<VBOX HARDDISK 1.0>                at scbus1 target 0 lun 0 (ada0,pass2)
<VBOX CD-ROM 1.0>                  at scbus2 target 0 lun 0 (cd0,pass3)

How to display the size of ZFS volume, available space and mount point (df style):

[root@sun] ~# zpool list
NAME        SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
DataPool0   928G   158G   770G    17%  1.00x  ONLINE  /mnt

How to display the info of ZFS volume:

In our example, a disk was recently replaced and it is being resilvered.

[root@sun] ~# zpool status -v
  pool: DataPool0
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
	continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Tue Jul 15 22:55:50 2014
        96.7G scanned out of 158G at 61.6M/s, 0h16m to go
        96.7G resilvered, 61.23% done
config:

	NAME                                            STATE     READ WRITE CKSUM
	DataPool0                                       ONLINE       0     0     0
	  mirror-0                                      ONLINE       0     0     0
	    gptid/45fa284a-0c62-11e4-88ee-080027f558f6  ONLINE       0     0     0  (resilvering)
	    gptid/884e2d6d-0a8a-11e4-8d94-080027f558f6  ONLINE       0     0     0

errors: No known data errors

How to put online a disk in ZFS pool:

[root@sun] ~# zpool online DataPool0 gptid/8805578c-0a8a-11e4-8d94-080027f558f6

How to replace a disk in ZFS pool:

[root@sun] ~# zpool replace DataPool0 gptid/854ddc51-0c5f-11e4-88ee-080027f558f6

How to check the disk partitions:

[root@sun] ~# gpart show
=>     63  4194241  ada0  MBR  (2.0G)
       63  1930257     1  freebsd  [active]  (942M)
  1930320       63        - free -  (31k)
  1930383  1930257     2  freebsd  (942M)
  3860640     3024     3  freebsd  (1.5M)
  3863664    41328     4  freebsd  (20M)
  3904992   289312        - free -  (141M)

=>      0  1930257  ada0s1  BSD  (942M)
        0       16          - free -  (8.0k)
       16  1930241       1  !0  (942M)

=>        34  1953525101  da1  GPT  (931G)
          34          94       - free -  (47k)
         128     4194304    1  freebsd-swap  (2.0G)
     4194432  1949330696    2  freebsd-zfs  (929G)
  1953525128           7       - free -  (3.5k)

=>        34  1953525101  da0  GPT  (931G)
          34          94       - free -  (47k)
         128     4194304    1  freebsd-swap  (2.0G)
     4194432  1949330696    2  freebsd-zfs  (929G)
  1953525128           7       - free -  (3.5k)

How to check the disk labels:

[root@sun] ~# glabel status
                                      Name  Status  Components
                             ufs/FreeNASs3     N/A  ada0s3
                             ufs/FreeNASs4     N/A  ada0s4
                            ufs/FreeNASs1a     N/A  ada0s1a
gptid/884e2d6d-0a8a-11e4-8d94-080027f558f6     N/A  da1p2
gptid/85433ef4-0c5f-11e4-88ee-080027f558f6     N/A  da0p1
gptid/854ddc51-0c5f-11e4-88ee-080027f558f6     N/A  da0p2

How to list the ISCSI LUNs and their information:

[root@sun] ~# istgt
istgt version 0.5 (20121028)
normal mode
using kqueue
using host atomic
LU2 HDD UNIT
LU2: LUN0 file=/mnt/DataPool0/virtuals/webcache, size=32212254720
LU2: LUN0 62914560 blocks, 512 bytes/block
LU2: LUN0 30.0GB storage for iqn.2014-07.ro.gz.sun:webcache
LU2: LUN0 serial 080027f558f6010
LU2: LUN0 read cache enabled, write cache enabled
LU2: LUN0 command queuing enabled, depth 32
LU3 HDD UNIT
LU3: LUN0 file=/mnt/DataPool0/swaps/pluto, size=1073741824
LU3: LUN0 2097152 blocks, 512 bytes/block
LU3: LUN0 1.0GB storage for iqn.2014-07.ro.gz.sun:swap-pluto
LU3: LUN0 serial 080027f558f6020
LU3: LUN0 read cache enabled, write cache enabled
LU3: LUN0 command queuing enabled, depth 32
LU4 HDD UNIT
LU4: LUN0 file=/mnt/DataPool0/swaps/venus, size=2147483648
LU4: LUN0 4194304 blocks, 512 bytes/block
LU4: LUN0 2.0GB storage for iqn.2014-07.ro.gz.sun:swap-venus
LU4: LUN0 serial 080027f558f6030
LU4: LUN0 read cache enabled, write cache enabled
LU4: LUN0 command queuing enabled, depth 32
LU5 HDD UNIT
LU5: LUN0 file=/mnt/DataPool0/virtuals/backups, size=375809638400
LU5: LUN0 734003200 blocks, 512 bytes/block
LU5: LUN0 350.0GB storage for iqn.2014-07.ro.gz.sun:backups-file
LU5: LUN0 serial 080027f558f6040
LU5: LUN0 read cache enabled, write cache enabled
LU5: LUN0 command queuing enabled, depth 32

If you want to add ssh key, remember that root filesystem is mounted read-only. You will have to remount it read-write before:

1. Remount root fs read-write: [root@sun] ~/.ssh# mount -o rw /
2. Edit authorized_keys file: [root@sun] ~/.ssh# nano authorized_keys
3. Remount root fs read-only: [root@sun] ~/.ssh# mount -o ro /

How to correct the timezone in FreeNAS via console:

1. Mount / read-write:

[root@sun] ~# mount -o rw /
[root@sun] ~# mount | grep FreeNASs1a
/dev/ufs/FreeNASs1a on / (ufs, local, soft-updates)

2. Change the time zone:

[root@sun] ~# date
Wed Jul 16 07:03:49 PDT 2014
[root@sun] ~# cp /usr/share/zoneinfo/Europe/Vienna  /etc/localtime 
[root@sun] ~# date
Wed Jul 16 16:06:44 CEST 201

If time is not accurate, you can change it as follows:

[root@sun] ~# date 1407201652
Sun Jul 20 16:52:00 CEST 2014

If you want to set up the time via NTP, do the following:

[root@sun] ~# date
Mon Jul 21 11:35:54 CEST 2014
[root@sun] ~# service ntpd stop
Stopping ntpd.
Waiting for PIDS: 77873.
[root@sun] ~# ntpdate 192.168.11.1
21 Jul 16:42:11 ntpdate[80176]: step time server 192.168.11.1 offset 18263.080345 sec
[root@sun] ~# service ntpd start
Starting ntpd.
[root@sun] ~# date
Mon Jul 21 16:42:17 CEST 2014

3. Mount back / as read-only:

[root@sun] ~# mount -o ro /
[root@sun] ~# mount | grep FreeNASs1a
/dev/ufs/FreeNASs1a on / (ufs, local, read-only)

How to mount cdrom in FreeNas:

[root@sun] ~# mkdir /mnt/cdrom
[root@sun] ~# ls -la /dev/cd0
crw-r-----  1 root  operator  0x53 Jul 16 15:57 /dev/cd0
[root@sun] ~# mount /dev/cd0 /mnt/cdrom
mount: /dev/cd0: Invalid argument
[root@sun] ~# ls -la /dev/iso9660/
total 1
dr-xr-xr-x   2 root  wheel      512 Jul 21 20:24 ./
dr-xr-xr-x  28 root  wheel      512 Jul 16 15:57 ../
crw-r-----   1 root  operator  0x7e Jul 21 20:24 VBOXADDITIONS_4.3.14_95030
[root@sun] ~# mount -t cd9660 /dev/iso9660/VBOXADDITIONS_4.3.14_95030 /mnt/cdrom/
[root@sun] ~# df /mnt/cdrom/
Filesystem                              1K-blocks  Used Avail Capacity  Mounted on
/dev/iso9660/VBOXADDITIONS_4.3.14_95030     64398 64398     0   100%    /mnt/cdrom

How to list zfs partitions:

[root@sun] ~# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
DataPool0                  268G   646G   192K  /mnt/DataPool0
DataPool0/.system         11.7M   646G   176K  /mnt/DataPool0/.system
DataPool0/.system/cores   5.23M   646G  5.23M  /mnt/DataPool0/.system/cores
DataPool0/.system/rrd     5.61M   646G  5.61M  /mnt/DataPool0/.system/rrd
DataPool0/.system/samba4   216K   646G   216K  /mnt/DataPool0/.system/samba4
DataPool0/.system/syslog   520K   646G   520K  /mnt/DataPool0/.system/syslog
DataPool0/osxTM             20G  11.2G  8.83G  /mnt/DataPool0/osxTM
DataPool0/squid           9.80G  20.2G  9.80G  /mnt/DataPool0/squid
DataPool0/swaps            846M  4.17G   846M  /mnt/DataPool0/swaps
DataPool0/virtuals         178G   122G   178G  /mnt/DataPool0/virtuals
DataPool0/www             58.9G  21.1G  58.9G  /mnt/DataPool0/www

Thou shalt not steal!

If you want to use this information on your own website, please remember: by doing copy/paste entirely it is always stealing and you should be ashamed of yourself! Have at least the decency to create your own text and comments and run the commands on your own servers and provide your output, not what I did!

Or at least link back to this website.

Recent content