無標題文檔

随忆 FreeBSD

Install FreeBSD

趁在隔离的空档期间组了台 NAS,自然而然的安装了 FreeBSD 和将数据拜托给了 ZFS。时间过得很快,回想接触这个系统已经有十几年的时间了。

初次接触 FreeBSD 还是在大学的时候,那时候自己的 MMX 166 笔记本装的还是 Slackware、实验室有台机子装的是 FreeBSD 4。由于次意外的断电,实验室的这台机器由于硬盘故障无法启动,当时作为兼职的运维只能我先去看看能不能解决。

那时候 FreeBSD 直观的印象其实很初步,就是配置方面和 Slackware 差不多,同时也体验到了 ports 的好处,就是至少不用像 Slackware 一样满世界的找 tar.gz 包了。

那时候「水云间」的 BSD 板块还是比较热闹的学术氛围浓厚,上面有各种各样的「奇迹淫巧」各种各样的 shell 脚本和配置文件。那时候的我们年轻而且还气盛,和争论 Vim、Emacs 哪个好一样,争论 GNU/Linux 和 BSD 之间孰优孰劣(现在是 Android 和 iOS 了吗?)也是个老生常谈的问题,热闹看得不亦乐乎。

再往后工作了以后就忙碌了很多,去「水云间」的日子也少了。在本世纪的头个十年,技术方面的发展非常的迅猛,「把玩」技术的时间也不会很多。我的主要系统也从 Slackware 往 Debian 上面迁移到后面买了台 Mac 就一直用 macOS 至今。

FreeBSD 的发展也是一路过来,版本从 4 一直到现在的 12,还是一路保持着 KISS(keep it simple, stupid)原则。当然FreeBSD 的「Simple」其实不是「简单」的意思,而是简洁。

安装好新的系统以及软件包以后,只需要拷贝应用的配置以及 /etc/rc.conf 还有 /boot/loader.conf 就可以直接投入使用。

开玩笑的说,这类的 BSD 系统是努力让管理员尽可能的快的遗忘掉它,因为知道使用 FreeBSD(以及 BSD 系列)的管理员,是知道拿它去做什么的。

所以这也是为什么眼看着份额却越来越低使用得人甚至讨论的人也是越来越少,而 FreeBSD 还存在的原因之一吧,哈哈。

的确 FreeBSD 从学院的背景走出来,很多地方不像 Linux 那么「分裂」以及「随意」,所以在 FreeBSD 安装盘里面有很多「年代感」的文件(所谓的传承?)。

FreeBSD 还是会时不时得给我些「小惊喜」。回到我的那台 NAS 上,我曾经需要给阵列卡加上监控和配置。LSI 厂商其实提供了 MegaRaid 等工具,在 FreeBSD 下其实官方已经提供了 mfiutil 这类的工具可以直接使用,同时参数和命令比 MegaRaid 更加的清晰。

FreeBSD 的在这个方面做得是两个极端,要么就是没有提供任何的支持,要么就是有非常完善的 Manual 以及 Handbook 说明。同理,对于 ZFS 方面的支持也是类似。除去协议方面的问题先不谈,我保守得至今还不敢在 Linux 生产环境下使用 ZFS,这已经是我的个固有的印象,而 FreeBSD 能做到开箱即用。

FreeBSD 的 slogan 现在变成了「The power to serve」。但 Linux 在应用层面 Docker 以及 K8S 等工具完全改变了传统运维的方式,这我在 FreeBSD 下是没有找到任何与之对比的杀手锏的(你问我 Jail?凑合吧…)。

在我看来,未来 FreeBSD 相对 Linux 应该更加下沉,无法让应用开发接触到了。它在底层存储、数据库、防火墙和网关还会继续占有一定的使用场景。对对,如果你说 macOS 甚至 Switch 也是 FreeBSD (或者和它有关系)的话。

FreeBSD 除了在特定场景下的优势,我个人对于 FreeBSD 的情感甚至可以说情怀,也是让我继续使用这个系统的原因。好比上面说的你十几年前的 rc.conf 不加修改扔到最新版本的 FreeBSD 还能兼容一样,当全部初始化时候出现 login 提示,这一切都给人感觉通过时间沉淀已经升华到另外一样东西了。

前几天,在之乎上看到个问题「现在使用 FreeBSD 是一种什么样的体验」、「现在学 FreeBSD 有必要吗」等等,只能轻轻的笑笑。其实,正式知道和使用 BSD 这些系统的人,基本上都是那些已经年过三十正在慢慢失去了折腾的时间和精力,或者已经在办公室里拿着保温杯泡着枸杞看着 KPI 担心脱发的那帮人了吧。

回想起如果那个下午没有意外的断电,可能就不会接触 FreeBSD 更不会有十几年的陪伴。但现在看过来,还是不后悔时间花在每次 /usr/ports 目录下等待 make install 完成屏幕暂停的时候吧。

因为,FreeBSD 以及 Slackware、Makefile、Vim… 等这些名词,毕竟是我的青春呀,笑(

- eof -

FreeBSD 下更新 PowerEdge H700 阵列卡的固件

经过一段时间的使用以后,NAS 的情况基本的稳定,同时将系统迁移到了 FreeBSD(主要是为了使用 ZFS)。不得不说,FreeBSD 下对于硬件阵列卡的支持是非常棒的,例如 PowerEdge H700 就有原生工具 mfiutil 支持再也可以不用那逆天的 MegaCli 命令行了

Screen Shots

偶然看到 PowerEdge H700 的固件持续更新到了 2015 年,而我查看了下目前的固件版本是 2012 年的。更新的固件主要修复了很多问题,应该说是比较稳定的了,于是考虑升级下(反正闲着也是闲着)。

看了下 mfiutil 的文档是支持 flash 固件的,但是官方提供的 BIN 包是针对 Linux 的。查找了下解决方案,发现有个类似的可以参考。主要步骤是先解压缩官方 BIN 包:

[root@centos ~]# ./SAS-RAID_Firmware_9FVJ2_LN_12.10.7-0001_A13.BIN --extract /tmp/
[root@centos ~]# ll /tmp/payload/FW4651I.rom

然后提取到 .rom 这个文件,例如,我这边的 ROM 文件名是 FW4651A.rom 。然后将这个文件扔到 FreeBSD 下,用 root 身份进行更新:

mfiutil flash FW4651A.rom

更新的过程比较顺利,内核会有相应的硬件更新提示信息,建议在执行完毕以后 reboot 下机器。

Screen Shots

然后,再次查看固件版本,就可以发现已经升级到最新了。最后,提供下这个版本的 ROM 文件(谨慎使用)

- eof -

Dell PowerEdge H700 硬件阵列卡折腾记录

原先家里的网络存储这块比较松散,一台主机连接了个 USB3.0 的磁盘阵列盒做了个 Raid1 ,加上另外台机子使用的是基于 Linux 的软 Raid 组合,非常不利于管理和监控状态。

于是考虑组建个比较中心化的 NAS 来统一管理以及扩大存储这块的容量。

在某宝上研究了下,发现硬件这块的 Raid 卡普遍比较流行的是基于 LSI 芯片的方案。但性价比不是很好,稍微符合支持缓存、BBU 以及状态支持的都要四五百甚至网上(要知道蜗牛等矿难主机大概也就两三百)。

和店家聊了下需求以后,发现有一款 Dell PowerEdge H700 的阵列卡比较符合我的要求,同时价格相对来说比较便宜,带 1G 缓存支持 BBU 和 CadeCache 的只要两百人民币不到的价格。

阵列卡外观

阵列卡设置界面

到手安装上去以后,发现兼容性一般来说问题不大,经过我手的几块四代主板都可以支持(Q87、Z97系列芯片组)。可能是针对服务器设计的缘故,唯一的不好就是虽然带了块散热片但发热还是会让人担忧(红外测试了下,待机温度要六七十以上)。

所以我给它换了散热硅脂、加了块散热片(在缓存主控上),同时再从某宝上淘了个涡轮风扇对着板卡吹。经过这样子的改造待机温度基本上在三四十的样子比较符合预期,稳定性这块还是需要长时间使用下来再观察。顺便说下,涡轮风扇的转速通常比较高,对于噪音有要求的同学建议加根降压线。

Dell PowerEdge H700 基于 LSI 的芯片方案,因此可以直接使用 LSI MegaCli 的应用软件,无差别。软件方面,宿主机安装的是 CentOS,可以根据 Arch 的 AUR 脚本直接拿到 RPM 安装包本地安装。

注意,测试过其他的发行版(例如 Fedora)需要安装 ncurses5-compat-libs 这个软件包才能正常的运行主程序。

FreeBSD 下的安装也是比较方便,直接根据对应官方网站的安装即可,具体参见官方文档。

吐槽下 MegaCli 这个应用软件反人类的地方,首先先不说比较奇葩的安装位置 /opt/MegaRAID/MegaCli/MegaCli64 ,单从参数来说想要查看 --help 直接跑起来也是比较困难的事情(具体参考常用的命令)。

所以又从 Github 上找到了个 MegaCli 的 Warpper,扩展了下这个小应用(最后更新竟然在 2015 年),用于格式化输出(JSON 格式)以及方便监控。

Grafana 界面

最后,放张 Grafana 监控的图,这样子基本上就可以日常使用了。用了四块 2T 的硬盘组 Raid6、两块 Intel 的 SSD 组 Raid1 作为系统盘,同时加了块上古的三星 SSD 作为 CacheCade 盘。

除了硬盘总计硬件的成本大概两百不到,就可以享受硬 Raid 带来的方便了。修改以后的源代码在 https://github.com/mingcheng/megaraid ,欢迎随时交流。

- eof -

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章