How To Install Openfiler From Usb
Jun 02, 2015 Getting Started With FreeNAS 11 Install, Configure, Setup Users, Setup Shares & How Snapshots Work. - Duration: 38:29. Lawrence Systems / PC. Details / OverviewRecently I had the need to boot Openfiler from a USB flash (thumb) drive.Note: This installation method requires a Openfiler install to a hard.
For a current project at work, I've been stuck using local storage on a number of VMware 5.5 servers since we do not have any shared storage available. I decided to take things into my own hands and do the next best thing. Because we have an older HP ProLiant server available, I decided to load OpenFiler v2.99 onto it. If you're wondering why I'm not using FreeNAS, the reason is simple, the HP server does not allow direct access to the drives, which is something that is needed to setup ZFS in FreeNAS.The server has 8 total drives; I setup a RAID1 array with 2 drives housing the installation/configuration of OpenFiler and then a RAID5 array with the remaining 6 drives, which will be used to setup the NFS share available to the VMware hosts.
The first challenge came up when attempting to install OpenFiler from a USB drive. Using Rufus to transfer the installation ISO to a flash drive didn't work as intended, apparently you need to copy the ISO over to the flash drive as well. I am thankful for a couple of people that posted this info as it probably would have caused me to lose my sanity otherwise. For more information regarding how to properly create the bootable USB install drive, please see the SECASERVER blog. If you need additional visual representation of what the process looks like, some one was kind enough to post a YouTube video of that as well.
Thankfully after reading these instructions and watching the short video, the install went pretty smoothly. If you'd like to check out some instructions of how to setup OpenFiler NFS or iSCSI with a VMware host, Rob Bastiaansen posted a wonderful guide on the vmwarebits blog. If you'd like to use multiple NICs for redundancy and more bandwidth, you can setup link aggregation between the OpenFiler host and a switch. In my case, I'm using LACP on a Cisco switch. For more info, Conrad Jedynak has the following blog post showing a sample configuration.
Previously I wrote an article on How to install and run Openfiler on a USB key. I thought that everything was working fine but eventually found that NFS and CIFS performance was too slow. Upon reading a few forums and stumbling across this thread in particular, the reason was down to Openfiler requiring an update.
I have since tried to update the installation by running conary updateall at the CLI. Unfortunately, this installs an updated kernel (2.6.29.6-0.24.smp.gcc3.4.x86_64 (SMP)) and also a new ramdisk which makes all the hard work from the previous post defunct. This article shows you how to perform the update and then make a new initrd-usb-update.img to work with the new kernel.
So assuming you’ve made a successful USB key using the previous article, continue with the following to update your Openfiler installation and also make the updated Openfiler installation USB key bootable.
Update Openfiler
Let’s first update Openfiler.
- Log into the CLI as root
conary updateall
- This will take a while as it downloads around 26 packages and installs them.
- Once complete insert the Openfiler CD into your drive and restart your system, making sure that it boots from CD.
Creating a new ramdisk that works with the new kernel
How To Install Usb Camera
This part is more or less very much similar to the steps in the previous post, there are some minor additions that we need to make, but for completeness I’ve included all the steps here.
- Once Openfiler finishes booting from the CD type.
linux rescue
- Go through the menus and select your region and keyboard and skip the automatic mounting of your installed OS. We will do this manually.
- When the prompt appears, create a directory to mount the USB key.
mkdir /mnt/sysimage
- Now mount the / of the USB key onto /mnt/sysimage.
mount /dev/sda2 /mnt/sysimage
Note: your / partition may be /dev/sda3 instead, depending on how you setup your partitioning during the installation of Openfiler.
- Now mount the boot partition of the USB key onto /mnt/sysimage/boot.
mount /dev/sda1 /mnt/sysimage
Note: your / partition may be /dev/sda1 instead, depending on how you setup your partitioning during the installation of Openfiler.
- Make the /mnt/sysimage your working environment by changing your root location so you are working on the file system on the usb key.
chroot /mnt/sysimage
- Copy the current initrd file to a temporary location where we can work on it.
cp /boot/initrd-1 /tmp/initrd.gz
Note1: now’s a good time to press TAB, there will now be two kernels, use 2.6.29.6-0.24.smp.gcc3.4.x86_64 as this is the updated kernel that was installed during the update.
gunzip /tmp/initrd.gz
- Make a temporary working directory
mkdir /tmp/b
We are using /tmp/b because /tmp/a already exists as the temporary working directory from the previous article.
cd /tmp/b
- Extract the contents of the initrd file into /tmp/b.
cpio –i < /tmp/initrd
- Now we edit the init file to load the USB and SCSI drivers for the new initrd-usb-update.img ramdisk.
nano init
- Do a search for “mount –t proc /proc /proc” and add the following underneath this line. We want to load these USB and storage modules before any other modules that’s why these entries need to be at the top of the file. Note that there is a new module crc-t10dif.ko which is required by the new kernel to boot from USB and as such must be launch during init time.
echo “Starting Openfiler on USB”
echo “Loading scsi_mod.ko module”
insmod /lib/scsi_mod.ko
echo “Starting crc-t10dif.ko module”
insmod /lib/crc-t10dif.ko
echo “Loading sd_mod.ko module”
insmod /lib/sd_mod.ko
echo “Loading sr_mod.ko module”
insmod /lib/sr_mod.ko
echo “Loading ehci-hcd.ko module”
insmod /lib/ehci-hcd.ko
echo “Loading uhci-hcd.ko module”
insmod /lib/uhci-hcd.ko
echo “Loading ohci-hcd.ko module”
insmod /lib/ohci-hcd.ko
sleep 5
echo “Loading usb-storage.ko module”
insmod /lib/usb-storage.ko
sleep 5
- Do a search for insmod /lib/scsi_mod.ko, insmod /lib/sd_mod.ko, insmod /lib/ehci-hcd.ko, insmod /lib/uhci-hcd.ko and /lib/crc-t10dif.ko and remove these duplicate entries from the rest of the file. We do not want these loaded again.
- Save the file and exit with CTRL X, then Y, or if you used vi then :wq!
- Now we need to copy all of the modules in Step 13 into our working directory.
cd /lib/modules/2/kernel/drivers
Note2: just press tab to fill in this bit, there will now be two kernels, use 2.6.29.6-0.24.smp.gcc3.4.x86_64 as this is the updated kernel that was installed during the update.
- Copy all of the modules in Step 13 to /tmp/b/lib.
cp scsi/scsi_mod.ko /tmp/b/lib
cp scsi/sr_mod.ko /tmp/b/lib
cp scsi/sd_mod.ko /tmp/b/lib
cp usb/host/ehci-hcd.ko /tmp/b/lib
cp usb/host/uhci-hcd.ko /tmp/b/lib
cp usb/host/ohci-hcd.ko /tmp/b/lib
cp usb/storage/usb-storage.ko /tmp/b/lib
cp /lib/modules/2.6.29.6-0.24.smp.gcc3.4.x86_64/kernel/lib/crc-t10dif.ko /tmp/b/lib
- Now let’s package the contents of the working directory /tmp/b into our new initrd-usb-update.img.
cd /tmp/b
find . cpio –c –o gzip -9 > /boot/initrd-usb-update.img
- Now all we need to do is edit the /boot/grub/menu.1st file to tell the kernel to use the new ramdisk that we just created. Remember that this new ramdisk is currently located in /boot/ (aka /dev/sda1) and is called initrd-usb-update.img.
nano /boot/grub/menu.1st
- Find the line starting with initrd /vmlinux-…………………… and replace with
initrd /initrd-usb-update.img
- Save the file and reboot the computer, remove the CD and allowing it to boot from the USB key. You now have your new updated Openfiler installation booting from the USB key directly.
Turn off flow control for SMB Clients
How To Install Open Filer
For better CIFS performance turn off your network adapter flow control. I can achieve a sustained 60 mb/s transfer between my Macbook and Openfiler once flow control is turned off. I was only achieving around 30 mb/s previously.
Turn off flow control for ESXi hosts using NFS/iSCSI to Openfiler
First understand what flow control is before performing the follow actions, the following articles provide good cases for either enabling or disabling flow control and auto-negotiation for flow control.
http://www.telecom.otago.ac.nz/tele301/student_html/ethernet-autonegotiation-flow-control.html – not to be confused with auto-negotiation of flow control.
Since this is my lab I’m going to disable flow control completely.
To do this on ESXi hosts follow these instructions or use VMware KB 1013413.
How To Install Iso From Usb
- Enable Remote SSH for the ESXi host first.
- Use your favourite SSH client and log in as root (assuming you can, disable lock-down mode etc).
- Run the following command to list all your vmnic interfaces, make a note of the vmnic that is used to connect to the Openfiler Server.
esxcfg-nics –l
- In my case it’s just vmnic0 (I’m using a HP Microserver), type the following command to see the current flow control status of that adapter.
ethtool –show-pause vmnic0
- Run the following commands to set auto-negotiation or RX flow control or TX flow control, any combination is possible.
- To disable flow control for sent and received traffic, use the command:
ethtool –pause tx off rx off
- To disable auto-negotiation of flow control, use the command:
ethtool –pause autoneg off
- Open the /etc/rc.local file using a text editor and append the same commands used in Step 6, placing each on its own line. Then save the file.
- For an ESXi host, save the configuration change using the command:
/sbin/auto-backup.sh
The commands added to the /etc/rc.local file will be executed at startup, persisting the configuration changes across reboots. As they are executed in Step 6, no reboot is required for them to take effect.