gri*_*eve 9 freebsd zfs network-attached-storage
请注意,此页面上的答案来自 2009 年,不应将其视为福音。如果您有关于zfs的特定问题,请单击“提问”按钮并提出特定问题。
我正在考虑使用 FreeBSD 7.2 和 ZFS 文件系统构建一个家庭备份系统。有没有人有过使用该文件系统的经验?
具体来说:
欢迎任何其他想法和建议。
编辑:
为了清楚起见,我已经阅读了ZFS 上的FreeBSD 页面。我正在寻找具有与我想要的类似设置的实践经验的人的建议。
Wal*_*ter 13
我使用 ZFS 构建了一个家庭 FreeBSD 文件服务器。
它是具有 3GB RAM 的 AMD X2 3200+。它有一个 PCI Express Gig-E。启动驱动器是一个旧的 400GB,我有 4 个 750GB 的 Seagte 驱动器(一个固件版本不同,以防万一)。
从 ZFS 引导会很好(它会使安装更简单),但我使用 ZFSOnRoot 指令来设置带有 ZFS 的 Root/OS 驱动器(如果所有分区都是 ZFS,那么它不需要在引导时执行 fsck检查 UFS 文件系统)。您希望这样做的原因是,您可以根据需要使用不同的选项设置所有分区(/var、/usr、/tmp 等)(例如 /usr/obj 的 noatime 和 async,这将加速内核编译),但它们都将共享公共池中的空间。然后,您可以设置数据驱动器并为每个用户提供自己的分区(使用不同的引号和设置)。然后,您可以拍摄快照(在 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
Run Code Online (Sandbox Code Playgroud)
性能方面,复制文件真的很快。我要注意的一件事是,我一直在具有 3-4GB 的 FreeBSD AMD64 系统上使用 ZFS 并且它运行良好,但是从我的阅读来看,我担心在具有 2GB 或更少的内存。
我用完了主板上的 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 盒。
在我的下一轮硬件升级中,我计划升级硬件,然后安装当前版本的 FreeBSD,它具有 ZFS v13。V13 很酷,因为我有一个电池备份 RAM 磁盘,可用于 ZIL 日志(这使写入尖叫)。它还支持使用 SSD 来加速文件服务器(新 Sun 文件服务器的规格很不错,他们从使用 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"
Run Code Online (Sandbox Code Playgroud)
这些说明还解释了如何创建镜像以及如何将系统恢复到恢复模式(使用 ZFS 挂载)。在玩了一两次他的说明之后,我使用 Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf的 ZFS Admin 手册来更好地理解 ZFS 是什么。为了创建我的数据存储,我使用了第 91 页上命令的修改版本来创建 ZFS 池。这是 FreeBSD,我必须做一个小改动:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Run Code Online (Sandbox Code Playgroud)
通过执行 dmesg |grep 'ata.*master' 找到的 ad4-ad10 是系统上将用于大数据分区的 SATA 硬盘驱动器的名称。在我的主板上,前三个 ata 端口 (ad0-3) 所在的 4 个 PATA 端口然后因为每个 SATA 端口都是一个主端口,所以没有旧数字。
要创建文件系统,我只是做了:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
Run Code Online (Sandbox Code Playgroud)
第二个命令是必需的,因为我关闭了共享的默认挂载点。
gri*_*eve 11
简介: 我终于建立了我的系统,这里是我的笔记,以防它对其他人有所帮助。
目标:
规格:
设计:
我们使用 ZFS 作为文件系统,因为它获得了如此好评。ZFS 几乎要求我们运行 64 位操作系统,并且喜欢大量内存,所以我应该至少获得 4Gb
硬件:
ABS Aplus ABS-CS-Monolith 黑色 SECC 钢制 ATX 全塔式电脑机箱 - 1 个 @ 69.99 美元 http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green 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
光宝黑色 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 美元) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e Brisbane 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 硬盘驱动器的适配器支架,可安装在 5 英寸托架中 - 1 @ ~ $17.00
运费 - 1 @ ~ $35.00
软件: FreeBSD 7.2 - 1 @ $0.00 http://www.freebsd.org/
总成本: 874.81 美元
硬件设置: 基本的计算机构建,有三个小问题。
我购买的机箱有 6 个硬盘插槽和两个 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+光盘插入刚组装好的电脑,重启,让它运行一夜。通过没有错误。
安装了 FreeBSD 7.2,如果您对此不熟悉,我建议您阅读以下内容:http : //www.freebsd.org/doc/en/books/handbook/install.html 它比我更好地解释要做什么能够。以下是我的具体设置:
安装并重新启动后,我注意到仅检测到 6 个 SATA 驱动器中的 4 个。我进入 BIOS 并在集成外设下将 OnChip SATA 类型更改为 AHCI,将 OnChip SATA 端口 4/5 类型更改为“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 create storage 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
Run Code Online (Sandbox Code Playgroud)编辑 /etc.rc/conf 并添加以下内容:
zfs_enable="YES"
Run Code Online (Sandbox Code Playgroud)
这会在启动时挂载 ZFS 文件系统。
创建 root、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
Run Code Online (Sandbox Code Playgroud)
除非您的池中需要更多文件系统,否则您几乎已经完成了 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
Run Code Online (Sandbox Code Playgroud)
用户添加:
user1
user2
Run Code Online (Sandbox Code Playgroud)
创建的组:
sambashare
Added user1 and user2 as members
chgrp sambashare /storage/fileshare
chmod 775 /storage/fileshare
chmod g+s /storage/fileshare
Run Code Online (Sandbox Code Playgroud)
桑巴配置:
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
Run Code Online (Sandbox Code Playgroud)
- 是否可以从 ZFS 启动?(我愿意吗?)
我认为您没有理由想要这样做,我认为 OpenSolaris 中的 Snapshot 支持仅足够成熟,因此您可以切换回旧版本并启动它(但这实际上只是胡乱猜测)。
- 添加驱动器有多容易?
在扩展条带池中添加?只需向池中添加一个驱动器,就可以了。考虑下你的下一个问题的含义。
- 它如何处理不同大小的驱动器?
您可以将其用作条带并告诉 ZFS 保留文件的 n 个副本。因此,您可以使用您拥有的完整存储可用性,并且仍然可以获得不错的冗余
- 您可以动态添加新驱动器(或至少只需重新启动)?
替换存储池中的设备我想这是推荐的解决方案,了解它在 FreeBSD 上的工作情况的最简单方法可能是尝试一下。
- 现成的东西会更好地为我服务吗?
您是否考虑过FreeNAS(路线图) 0.70 似乎即将发布并将支持 ZFS。
您将省去所有框架的麻烦,并获得一个相对不错的免费使用 GUI。
| 归档时间: |
|
| 查看次数: |
11927 次 |
| 最近记录: |