在 Xen 下运行 Openfiler

在我们的 IT 环境中用到了大量 NAS,有专业的 Sun StorageTek NAS 也有淘汰下来的 PC 做的 NAS,我们几乎虚拟化了所有的服务器,唯一没有虚拟化的部分可能就是存储系统,因为虚拟机的 IO(包括磁盘 IO 和网络 IO)性能目前还达不到裸机的水平。Openfiler 是一个的网络存储管理系统,其功能和 FreeNAS 类似,不同的是 Openfiler 基于 Linux 2.6,支持64位,而 FreeNAS 基于 FreeBSD 的(直到最近才支持64位),Openfiler 的功能和 FreeNAS 差不多,都能支持 NAS, SAN, CIFS, NFS, HTT/DAV, FTP, SIMBA, RSYNC, iSCSI 等,Openfiler 能更好的支持 RAID, LVM,不过 FreeNAS 能支持 ZFS(VPSee 对 ZFS 文件系统非常感兴趣,如果 Linux 上有类似的克隆就好了)。

VPSee 想对虚拟机运行存储系统和真实机器运行存储做个对比,看看性能上到底有多大的损失。Openfiler 官方网站上有 VMware ESX Virtual Appliance, XenServer XVA Virtual Appliance, Xen domU Filesystem 等多个预装好的虚拟镜像可以下载。我们选择 Xen 作为运行 Openfiler 的虚拟环境,本来以为 Openfiler 的镜像和 stacklet.com 上面的 Xen 镜像一样直接下载下来就可以用,结果不是这么简单,下载的只是一个文件系统,要自己做一些配置,和徒手安装 Xen domU 的过程差不多。

下载 Openfiler 的 Xen tar 包:

# mkdir -p /xen/openfiler
# cd /xen/openfiler
# wget http://www.rpath.org/rbuilder/downloadImage?fileId=26670

创建一个 LVM 区来存放 Openfiler:

# lvcreate -L 10G -n openfiler XenGroup

在新建的 LVM 上创建 Ext3 文件系统,并作为 Openfiler 虚拟机的 root 根系统:

# mkfs.ext3 /dev/XenGroup/openfiler
# e2label /dev/XenGroup/openfiler root

挂载 root 文件系统后,把下载下来的 openfiler-2.3-x86_64.tar.gz 解压到 /mnt 里面去:

# mount /dev/XenGroup/openfiler /mnt/
# cd /mnt/
# tar xzpvf /xen/openfiler/openfiler-2.3-x86_64.tar.gz

解开 openfiler-2.3-x86_64.tar.gz 后会在 /mnt 下产生一个完整的 Linux 系统,我们需要把这个 Linux 的内核拷贝出来以便加到 Xen 虚拟机配置文件中:

# mkdir -p /xenboot/
# cp /mnt/boot/config-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU /xenboot/
# cp /mnt/boot/initrd-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU.img /xenboot/
# cp /mnt/boot/System.map-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU /xenboot/
# cp /mnt/boot/vmlinuz-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU /xenboot/

解除挂载:

# cd 
# umount /mnt

创建启动 Openfiler 虚拟机需要的 Xen 配置文件:

# vi /etc/xen/openfiler

name = 'openfiler'
memory = '512'
kernel = '/xenboot/vmlinuz-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU'
ramdisk = '/xenboot/initrd-2.6.21.7-3.20.smp.gcc3.4.x86_64.xen.domU.img'
disk = [ 'phy:/dev/XenGroup/openfiler,xvda1,w' ]
root = "/dev/xvda1 ro"
vif = [ "mac=00:16:3e:38:76:22,bridge=xenbr0" ]
on_reboot = 'restart'
on_crash = 'restart'

启动 Openfiler 虚拟机:

# xm create openfiler

启动成功后就可以通过 https://172.16.39.1:446 来访问和管理 Openfiler 了,默认用户名和密码为 openfiler/password,登录后界面如下:

openfiler