Answers:
我使用ZFS构建了一个家用FreeBSD文件服务器。
它是具有3GB RAM的AMD X2 3200+。它具有PCI Express Gig-E。引导驱动器是旧的400GB,我有4个750GB的Seagte驱动器(其中一个具有不同的固件版本,以防万一)。
从ZFS引导本来很好(它将使安装更加简单),但是我使用ZFSOnRoot指令来设置具有ZFS的Root / OS驱动器(如果所有分区都是ZFS,则它不需要在引导时执行fsck检查UFS文件系统)。之所以希望能够随后使用所需的不同选项(例如,用于/ usr / obj的noatime和async)设置所有分区(/ var,/ usr,/ tmp等)的原因,这将加速内核编译),但它们都将共享一个公共池中的空间。然后,您可以设置一个数据驱动器,并为每个用户分配一个自己的分区(使用不同的引号和设置)。然后,您可以拍摄快照(在ZFS上成本较低)。
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
从性能角度来看,复制文件的速度非常快。我要指出的一件事是,我一直在具有3-4GB容量的FreeBSD AMD64系统上使用ZFS,并且运行良好,但是从我的阅读中,我会担心在具有2GB容量或容量的i386系统上运行它。更少的内存。
我没有主板上的SATA端口,因此我没有尝试添加任何新驱动器。初始设置很简单,一个命令创建RAIDZ,然后一个命令创建/ home,其格式为秒(IIRC)。我仍在使用旧版本的ZFS(v6),因此存在一些局限性(它不需要相同大小的驱动器,但与Drobo不同,如果您有3 750GB驱动器和1TB驱动器,最终结果就像您有4个750GB驱动器)。
我将ZFS与RAIDZ一起使用的主要原因之一是端到端校验和。欧洲核子研究组织(CERN)发表了一篇论文,记录了他们进行的测试,发现在进行为期几周的R / W测试时发现200多个未更正的读取错误(零售驱动器中的ECC每读取12TB就会出现故障)。我希望服务器上的数据正确无误。由于断电(有人通过插入空间加热器使UPS过载),我发生了严重的崩溃,但是当系统可以恢复时,ZFS很快恢复了,没有标准的fsck问题。
我喜欢它,因为然后可以将CUPS添加到Samba中以获得打印服务器。我添加了DNS缓存,并可以根据需要添加其他软件(我正在考虑将SNMP监视添加到我家中的桌面以测量带宽使用情况)。对于我在系统上花费的东西,我确定可以买一个便宜的NAS盒,但是那样我就没有64位本地Unix盒可以玩了。如果您喜欢FreeBSD,我会说吧。如果您更喜欢Linux,那么我建议使用Linux解决方案。如果您不想执行任何管理,那就是我要购买独立的NAS盒的时候。
在下一轮硬件升级中,我计划升级硬件,然后安装具有ZFS v13的当前版本的FreeBSD。V13很酷,因为我有一块电池备份的RAM磁盘,可用于ZIL日志(这使写入尖叫)。它还支持使用SSD来加快文件服务器的速度(新的Sun File Server的规格很不错,它们是从使用SSD使系统非常快速的ZFS系统中获得的)。
编辑:(尚不能发表评论)。我几乎遵循了http://www.ish.com.au/solutions/articles/freebsdzfs上的说明。自编写这些指令以来,7.X中存在的一个主要变化是7.2出来了,如果您有2 GB以上的空间,则不必在/boot/loader.conf中添加以下三行:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
这些说明还说明了如何创建镜像以及如何使系统恢复到恢复模式(通过ZFS挂载)。在听过他一两次的指示后,我使用了Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf上的ZFS管理员手册,以更好地了解ZFS是什么。为了创建数据存储,我使用了第91页上命令的修改版本来创建ZFS池。这是FreeBSD,我必须做一个小改动:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
通过执行dmesg | grep'ata。* master'找到ad4-ad10,这是系统上用于大数据分区的SATA硬盘驱动器的名称。在我的主板上,前三个ata端口(ad0-3)位于其中的4个PATA端口,然后因为每个SATA端口都是主端口,所以没有旧编号。
要创建文件系统,我做了:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
第二条命令是必需的,因为我关闭了共享的默认安装点。
简介: 我终于构建了我的系统,这是我的注释,以防万一。
目标:
规格:
设计:
我们将ZFS用作文件系统,因为它获得了如此好评。ZFS非常需要我们运行64位OS,并且喜欢很多内存,因此我应该至少获得4Gb
硬件:
ABS Aplus ABS-CS-Monolith黑色SECC钢ATX全塔式电脑机箱-1 @ $ 69.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital鱼子酱绿WD5000AADS 500GB SATA 3.0Gb / s 3.5英寸硬盘6 @ $ 347.94($ 57.99 ea) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 120mm 4白色LED LED机箱风扇-1 @ $ 8.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
LITE-ON黑色IDE DVD-ROM驱动器型号iHDP118-08-1 @ $ 19.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Crucial 4GB(2 x 2GB)240针DDR2 SDRAM DDR2 800(PC2 6400)CT2KIT25664AA800-1 @ $ 45.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
技嘉GA-MA74GM-S2 AM2 + / AM2 AMD 740G Micro ATX AMD主板-1 @ $ 54.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
OKGEAR 18英寸SATA II电缆型号GC18ATASM12-6 @ $ 11.94($ 1.99 ea) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e布里斯班2.6GHz Socket AM2 45W双核处理器型号ADH5050DOBOX-1 @ $ 62.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
KINGWIN Mach 1 ABT-1000MA1S 1000W ATX / BTX电源-1 @ $ 199.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
希捷400GB IDE驱动器-1 @(已安装在壁橱中),但80GB IDE驱动器的价格约为37.00美元,而80GB容量绰绰有余。
IDE硬盘驱动器的适配器支架,可放入五英寸托架中-1 @〜$ 17.00
运费-1 @〜$ 35.00
软体: FreeBSD 7.2-1 @ $ 0.00 http://www.freebsd.org/
总费用: 874.81美元
硬件设置: 基本的计算机版本,有三个小问题。
我购买的机箱有6个硬盘驱动器插槽和2个3.5托架。我以为IDE可以容纳3.5个托架之一。这是一个错误的假设,没有合理的方法可以使它起作用。我去了,在Fry's买了一个适配器,价格约为$ 17.00,它工作正常。
我购买的Sata电缆具有90度连接器,非常好,除了有六个驱动器外,其他方法无法完成。插入一根电缆会使连接器的固定部分悬垂在下一个硬盘驱动器上。我必须去Fry's并用5条常规SATA电缆。可悲的是,我在纽蛋(Newegg)买的那些东西是如此便宜,以至于不值得将它们寄回。
机箱将硬盘驱动器的背面指向机箱的侧面,电源的电源线具有坚固的连接器,该连接器伸出机箱的边缘。这不允许我将侧盖滑回原位。为了使它正常工作,我不得不花点时间尝试一下,最终最终在驱动器之间插入了两条模块化电源电缆(每根电缆上有四个SATA插头),以便第一个电缆驱动的驱动器0, 2和4,第二个分别驱动1、3和5。这允许足够的弯曲度,以至于我可以将它们拉紧。
操作系统设置:
将FreeBSD 7.2 ISO刻录到CD。我本可以使用单张DVD,但周围没有任何闲置物品。
将memtest86 +(http://www.memtest.org/)刻录到CD上。
接通刚构建的计算机的电源,然后进入BIOS,以确保它可以看到所有7个驱动器和DVD-ROM。它做了。更改了启动顺序以首先制作CDROM。
将memtest86 + CD插入刚构建的计算机,重新启动计算机,并使其运行一整夜。通过并没有错误。
已安装FreeBSD 7.2,如果您对此不熟悉,建议阅读以下内容:http : //www.freebsd.org/doc/en/books/handbook/install.html 在解释操作方面比我做得更好。能够。这是我的具体设置:
安装并重新启动后,我注意到在6个SATA驱动器中仅检测到4个。我进入BIOS,在“ Integrated Peripherals”下,将OnChip SATA Type更改为AHCI,并将OnChip SATA port 4/5 Type更改为“ SATA”。保存设置并重新启动。
此时,FreeBSD将所有六个驱动器检测为:ad4 ad6 ad8 ad10 ad12 ad14
使用csup从cvs获取最新信息:csup -g -L 2 stable-supfile我已经编辑了文件以使用主机:cvsup11.us.FreeBSD.org保留所有其他信息。
如此处所述重建并安装了最新的内核和环境:http : //www.freebsd.org/doc/en/books/handbook/makeworld.html自定义我的内核(请参阅ZFSNAS)。由于我从不打算使用SCSI,USB,PCMCIA,串行,并行等功能,因此我禁用了大量设备。在/etc/make.conf中添加了以下内容:CPUTYPE = athlon64 CFLAGS = -O2 -fno-strict-aliasing -pipe make -j8 buildworld
NAS设置:
创建用于存储的ZFS池:zpool创建存储raidz2 ad4 ad6 ad8 ad10 ad12 ad14
在新创建的存储上创建主文件系统:
zfs create storage/home
cp -rp /home/* storage/home
rm -rf /home /usr/home
zfs set mountpoint=/home storage/home
编辑/etc.rc/conf并添加以下内容:
zfs_enable="YES"
这会在启动时挂载ZFS文件系统。
创建了根目录,samba和perforce目录
zfs create storage/root
cp -rp /root/* storage/root
rm -rf /root
zfs set mountpoint=/root storage/root
zfs create storage/fileshare
zfs create storage/perforce
除非您的池上需要更多的文件系统,否则ZFS部分就已经完成了。有关更多详细信息,请参见以下内容: http: //www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
安装的端口:
/usr/ports/shells/bash
make install
/usr/ports/editors/vim
make install
/usr/ports/net/samba33
make
make install
// Use all defaults un-check cups.
/usr/ports/devel/perforce
make
make install PERFORCE_PORT=XXXX PERFORCE_USER=p4user PERFORCE_GROUP=p4
rm -rf /usr/local/perforce
cd /storage/perforce/
mkdir root
mkdir log
chown p4user:p4user *
cd /storage
chown p4user:p4user perforce
Edited /usr/local/etc/perforce.conf as follows:
#
# Perforce FreeBSD configuration file
#
#
# $FreeBSD: ports/devel/perforce/files/perforce.conf.in,v 1.3 2005/01/18 15:43:36 lth Exp $
#
# Perforce ROOT
#
PERFORCE_ROOT="/storage/perforce/root"
#
# Perforce user (it is recommended to run p4d as a non-root user)
#
PERFORCE_USER="p4user"
#
# p4d/p4p port (default: 1666)
#
PERFORCE_PORT="XXXX"
#
# p4p cache directory
#
PERFORCE_PROXY_CACHE="/usr/local/perforce/cache"
#
# p4p target server (default: perforce:1666)
#
PERFORCE_PROXY_TARGET="perforce:1666"
#
# p4d options (see man p4d)
#
PERFORCE_OPTIONS="-d -p $PERFORCE_PORT -v server=1 -L /storage/perforce/logs/p4d.log"
#
# Uncomment this line to have the server started automatically
#
PERFORCE_START=yes
用户添加:
user1
user2
建立的群组:
sambashare
Added user1 and user2 as members
chgrp sambashare /storage/fileshare
chmod 775 /storage/fileshare
chmod g+s /storage/fileshare
Samba配置:
Samba configuration file:
#################
[global]
workgroup = USERLAN
server string = ZFS NAS
security = user
hosts allow = 192.168.1. 127.
log file = /usr/local/samba/var/log.%m
max log size = 50
passdb backend = tdbsam
dns proxy = no
[user1share]
comment = user1 share
path = /storage/fileshare
valid users = user1 user2
public = no
writable = yes
printable = no
create mask = 0765
#################
pdbedit -a -u user1
# followed prompts
pdbedit -a -u user2
# followed prompts
- 是否可以从ZFS引导?(我要吗?)
我没有理由不愿,我认为Snapshot支持仅在OpenSolaris中已经足够成熟,因此您可以切换回旧版本并启动它(实际上只是在疯狂猜测)。
- 添加驱动器有多容易?
在扩展条带池中添加为?只需将驱动器添加到池中即可。请考虑您下一个问题的含义。
- 它如何处理不同大小的驱动器?
您可以将其用作条带,并告诉ZFS保留文件的n个副本。因此,您可以使用现有的全部存储可用性,并仍然获得不错的冗余
- 您是否可以即时添加新驱动器(或至少只需重启即可)?
替换存储池中的设备我想这是推荐的解决方案,要弄清它在FreeBSD上的运行情况,最简单的方法就是尝试一下。
- 现成的东西能更好地为我服务吗?
您是否考虑过FreeNAS(Roadmap) 0.70似乎即将发布并将支持ZFS。
您将省去所有框架的麻烦,并且可以相对免费地使用GUI。
我有带FreeBSD + ZFS(在7.2-STABLE和8.0-CURRENT上)的服务器,而不是正式生产。
从ZFS引导的描述如下: http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
快速添加驱动器就像键入“ zpool add mypool da7”一样简单,此后即可使用新驱动器。您还可以在条带,镜像,raidz(改进的raid-5)或raidz2(改进的raid-6)中添加整个驱动器
可以将不同大小的驱动器放在池中,但不能用于镜像/条带/ raid(如果我没记错的话,那么只有最小的硬盘空间可用)
(开放)Solaris即时提供对ZFS的支持
我没有使用ZFS的经验,但是我在RSS Feeder中看到了这一点:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
这表明它已经成熟,但尚未准备好在FreeBSD上进行生产。