Backblaze 是一家在线存储服务商,每隔一段时间他们就会发布他们的存储服务器 Storage Pod 设计细节(Storage Pod 4.5),一些第三方公司就按照这个设计造出一些廉价的存储服务器来出售。
没调查清楚头脑一热就买了,买回来拆开一看有点后悔:
……
-
只有一个系统盘,OS 装在一个盘上太危险,至少应该双硬盘 RAID1;
-
只有一个电源,服务器系统至少需要配用2个可用电源;
-
没有硬件 RAID,这个无所谓,我们也不打算用任何 RAID;
-
只有2个 GigE 网卡,我们购买了额外2个 10 GigE;
-
开箱操作不方便,更换一个硬盘每次都要把10几个螺丝钉卸下来;
-
没有硬盘指示灯,哪个硬盘坏了无法从45个硬盘里迅速识别出来。
不过我们对这台存储服务器没太多要求,主要做归档备份用,不是我们的主备份,也不太在乎它是否可靠,所以先凑合着用吧。两年前我们提到 “把 Time Machine 备份到 FreeNAS 上”,我们打算这次直接用 FreeBSD + ZFS 做我们的备份服务器。
ZFS 准备工作
我们选择 FreeBSD 做备份的主要原因就是因为 ZFS,ZFS 操作起来太方便了。把30个硬盘连起来创建一个叫做 backup 的大存储池,采用 raidz2(相当于 RAID6):
# zpool create backup raidz2 /dev/da0 /dev/da1 /dev/da2 /dev/da3 /dev/da4 /dev/da5 /dev/da6
/dev/da7 /dev/da8 /dev/da9 /dev/da10 /dev/da11 /dev/da12 /dev/da13 /dev/da14 /dev/da15 /
dev/da16 /dev/da17 /dev/da18 /dev/da19 /dev/da20 /dev/da21 /dev/da22 /dev/da23 /dev/da24
/dev/da25 /dev/da26 /dev/da27 /dev/da28 /dev/da29
在 pool 上创建一个文件系统 timemachine,创建好后就自动挂载好了,不用再手动 mount:
# zfs create backup/timemachine
# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ada0p2 447G 2.3G 409G 1% /
devfs 1.0K 1.0K 0B 100% /dev
backup 31T 278K 31T 0% /backup
backup/timemachine 31T 1.0G 31T 0% /backup/timemachine
对每个使用 Mac/Time Machine 的用户需要在 FreeBSD 系统上增加一个对应的帐户,并把帐户加到 timemachine 组里面便于统一管理:
# pw useradd -n vpsee -s /bin/csh -m
# passwd vpsee
# pw groupadd timemachine
# pw groupmod timemachine -m vpsee
# pw groupshow timemachine
timemachine:*:1002:vpsee
在 /backup/timemachine 下面新建一个用户目录,并给予适当权限:
# mkdir /backup/timemachine/vpsee
# chown vpsee:timemachine /backup/timemachine/vpsee
# chmod 700 /backup/timemachine/vpsee
# chmod 777 /backup/timemachine
安装和配置 Netatalk
Netatalk 是一个开源的 AFP (Apple File Protocol) 文件服务器,为 Mac OS X 提供文件共享服务。Avahi 是 Apple Zeroconf 协议的开源实现,类似 Bonjour 的功能,它可以让你在 Mac 系统里自动发现你的 FreeBSD 服务器。我们直接使用 pkg 安装软件包:
# pkg install netatalk3
# pkg install nss_mdns
# pkg install avahi
修改 nsswitch.conf:
# vi /etc/nsswitch.conf
#
# nsswitch.conf(5) - name service switch configuration file
# $FreeBSD: releng/10.2/etc/nsswitch.conf 224765 2011-08-10 20:52:02Z dougb $
#
...
hosts: files dns mdns
...
配置 afp:
# vi /usr/local/etc/afp.conf
;
; Netatalk 3.x configuration file
;
[Global]
vol preset = default_for_all_vol
log file = /var/log/netatalk.log
log level = default:info
hosts allow = 172.20.0.0/23
mimic model = TimeCapsule6,116
disconnect time = 1
[default_for_all_vol]
file perm = 0640
directory perm = 0750
cnid scheme = dbd
[TimeMachine]
time machine = yes
path=/backup/timemachine/$u
valid users = @timemachine
#512 GB limit
vol size limit = 512000
配置完后启动各服务:
# /usr/local/etc/rc.d/dbus onestart
# /usr/local/etc/rc.d/avahi-daemon onestart
# /usr/local/etc/rc.d/netatalk onestart
如果测试后都好用的话别忘了把服务加到启动文件里:
# vi /etc/rc.conf
...
zfs_enable="YES"
dbus_enable="YES"
avahi_daemon_enable="YES"
avahi_dnsconfd_enable="YES"
netatalk_enable="YES"
...
Mac 配置
在 Mac 上把这个选项打开:
$ defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
打开 Finder -> Go -> Connect to Server… 填入 FreeBSD 的 IP 地址(afp://192.168.2.201)后点击 Connect,使用刚才创建的帐号和密码登录进入之后就会看到 TimeMachine 文件夹。
打开 System Preferences -> Time Machine -> On 选择 TimeMachine 文件夹,然后点击 Use Disk 就应该能用了。
(责任编辑:IT) |