GPTおよびZFSベースのFreeBSDインストール


リード
07年に私は「誰もが1台のサーバーが必要だ」で、私は家庭用サーバーを持っていて、淘汰されたP 3マイクロデスクトップで作ったもので、ubuntuシステムをインストールしています.主な仕事はネットワークファイアウォール、ファイル共有、ソースバージョン制御、開発用データベースとWebServer、SSH/SFTPなどです.ここ数年ずっと正常に働いています.しかし、時代は発展しているので、この機械は本当に年を取っているので、交換しましょう.
当時想定されていた省電力案は現在普及しており、完成品のNASサーバーは言うまでもなく、自分で組み立てるにも多くの選択肢があり、例えばINTELプラットフォームにはローエンドのATOMのようなものがあり、ハイエンドのCULVシリーズがあり、AMDにも対応する製品ラインがある.現在、ネット上でNASやホームサーバを自分で組み立てて配置する人も少なくなく、FreeBSDベースのFreeNASやWindowsベースのWBSなど、さまざまなソフトウェア案も少なくありません.
ハードウェアスキーム
まずハードウェアです.私のニーズは一般的なNASユーザーのニーズとは異なるので、製品NASは基本的に私のDIYのニーズを満たすことができず、自分で組み立てるしかありません.
CPUが選んだのはINTELのATOMシリーズで、気に入ったのはその発熱がAMDより相対的に小さいことです.マザーボードは17 X 17のMINI-ITXでなければなりません.私が機械を置く場所が小さいので、中の位置は立人Q 5のような小さなシャーシしか置くことができませんが、このシャーシにはこのようなマザーボードしか入れられません.メモリのサポートはもちろん大きいほど良いですが、CPUの制限があります.各種ポートも多ければ多いほど良いですが、ストレージ機能が重要なので、SATAポートは少なくとも2つ必要で、IDEがあればあるほど、なくても受け入れられます.USBはあまり役に立たないが、4個未満では不便だ.ネットカードはいくつか多くなることができてもちろん良くて、1つの基本も十分で、もちろんギガビットが一番いいです.
これらの条件で探すと、まずすべてのネットブックマザーボードが放棄するしかありません.SATAが1つしかないからです.デスクトップまたはマザーボードからのみ検索できます.省電力化を図るなら、ATOMのNシリーズがベストだろうが、残念ながら主にネットブックのために設計されており、DIY案が欠けている.見つけられても古いN 270ですが、その性能は本当にダメで考えません.私は最初はAtom 330を考えていましたが、これは消費電力と性能のバランスの良い選択でしたが、すでに退市しているので、市場では基本的にリニューアル修理品で、問題が多すぎました.だから最後にD 525、デュアルコアを選んで、4 Gメモリをサポートして、Dシリーズの欠点は消費電力がNシリーズよりずっと大きくて、発熱の問題は比較的に面倒です.大まかな配置は以下の通りです.
CPU:Intel D 525マザーボード:NM 10チップセットメモリ:2 G(4 Gまで拡大する予定ですが、2 GのメモリがZFSを走るのは無理だと言われていますので、とりあえず試してみます)ハードディスク:1 T(2 Tまで拡大する予定です)
ソフトウェアについては、私はWBSを考えないに違いありません.Windowsが好きではないので、Nを何度も言ったことがあります.個人の好み以外に、著作権の問題(システムの著作権以外にアプリケーションの著作権の問題も考えなければなりません)、ウイルスの問題、安全の問題、安定性の問題などは面倒です.FreeNASはNAS向けに実装されているため、小さなFreeBSDコアしか持っていないので、明らかに私には十分ではありません.その上で振り回すことができますが、結局は面倒です.そのため、FreeBSDを直接インストールし、必要に応じてソフトウェアをインストールすることにしました.ubuntuを使わないのは、ZFSを試してみたいからです.linuxにはすでに様々な移植のZFSやZFSのような案がありますが、結局成熟度が足りないので、FreeBSDの現在の8.2版が持っているZFS 15版でも完璧ではありません.FreeBSD 9が出てきて完璧なZFSがあることを望んでいます.
ハードウェアのインストールは何も言うことはありません.ただD 525の発熱はまだ少し大きいので、扇風機をつけないと夏は耐えられないと思いますが、結局6010の小さな扇風機をつけなければならなくて、完全に静音できないのは残念なことです.性能に要求がなければ、N 270方式で放熱するのは問題ありません.
以下、ソフトウェアのインストールについてのみ説明します.
インストール前の準備
もともと気に入ったもう一つのマザーボードはIDEポートがあって、CD-ROMドライブに接続してシステムをインストールすることができますが、そのボードが品切れで買えませんでした.今使っている板はIDE口がなくて、USBでしか起動できないので、まずUSB起動盤を作る必要があります.もちろん、USBドライブを外付けしてもいいです.
FreeBSD USB起動ディスクの作成方法については、この記事を参照してください.
まずmemstick.imgバージョンのFreeBSDインストールファイルをダウンロードし、現在最新の8.2安定版ですが、私はZFSを使うので、大きなメモリが必要なので、ダウンロードしたのは64ビットバージョンで、32ビット版も無理に使えるそうですが、配置が面倒になります.Uディスクを挿入した後、システム(私のデスクトップシステムはubuntu 10.04で、Windowsユーザーは自分で研究してください)で使用します.
sudo fdisk -l

USBディスクのデバイス名を見てみましょう.例えばsdbです.次に、
sudo dd if=FreeBSD-8.2-RELEASE-amd64-memstick.img of=/dev/sdb bs=10240 conv=sync

作成したら、サーバを起動してインストールを開始します.
インストールプロセス全体は主にこの文章を参考にします.以下の内容の大部分はこの文から来て、特にここで説明します.
HDD計画
インストールを開始する前に、ハードディスク(HDD)の割り当てを計画します.ZFSで区切られた神馬はすべて浮雲で、すべて動的に調整できると言っていますが、いくつかの問題があります.
1位はGPTです.ハードディスク(HDD)の容量が増加するにつれて、従来のMBRパーティションは需要を満たすことができないため、GPTは主流になるか、主流になっている.2つ目は、AFセクタ(いわゆる4 KiBセクタ)が大容量ハードディスクの標準フォーマットになるか、またはすでになっていることであり、従来の512 BセクタフォーマットはAFハードディスクにも互換性があるが、AFハードディスク上で512 Bセクタフォーマット(いわゆる512 eモード)を使用すると効率が低下することがある.
だから私はこの1 Tのハードディスクをこのように計画しました(実際の容量932 G):
boot: 64K
swap: 4G
zroot: 16G
tank: 912G

これは4つのGPTパーティションであり、bootはブート領域であり、swapは交換パーティションであり、zrootとtankは2つのZFS Poolパーティションである.zpoolを2つに分けるのは、前述したAFハードディスクの問題のためです.ここで、zrootはシステムのルートZFSとして、システムのマウントが完了するまで4 KiBセクタを一時的にサポートできないため、zrootにしか入れられず、従来の512 Bセクタフォーマットを使用する.tankはユーザZFSで、ホーム、ports、srcなどをここに置いて、これは4 KiBセクタを使っています.
FreeBSDはとっくにGPTパーティションをサポートしていますが、sysinstallには昔ながらのfdiskパーティションツールが付いていますし、zrootもZFSパーティションなのでsysinstallではできませんので、以下のインストール手順は全手動です.
まずsysinstallの起動完了時にFixit-USBを選択してFixitモードに入ります(プロンプトはfixit#)
インストール:GPTパーティション
gpartパーティションを手動で使用するには:
gpart create -s gpt ad4
gpart add -s 64K -t freebsd-boot ad4
gpart add -s 4G -t freebsd-swap -l swap0 ad4
gpart add -s 16G -t freebsd-zfs -l zroot ad4
gpart add -t freebsd-zfs -l tank ad4
gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4

このうちad 4は私がUディスクで起動したハードディスクの名前です.自分で起動した後、ハードディスクの名前をチェックして交換してください.
以上のコマンドは、GPTパーティションテーブルの作成、bootパーティション、swapパーティション、zrootパーティション、tankパーティションの作成、GPTブートレコードの書き込みです.このうちbootパーティション以外はすべてlabelが付いており、後続の操作で使用しやすい.
インストール:ZFSの作成
まず、関連するzfsモジュールをロードする必要があります.
kldload /mnt2/boot/kernel/opensolaris.ko
kldload /mnt2/boot/kernel/zfs.ko
kldload /mnt2/boot/kernel/geom_nop.ko

ここでgeom_nopは後から4 KiBパーティションフォーマットを使用するために使用されます.
次に、システムzpoolを作成します.
mkdir /boot/zfs
zpool create zroot /dev/gpt/zroot
zpool set bootfs=zroot zroot

さらに4 KiB対応のtank zpoolを作成:
gnop create -S 4096 /dev/gpt/tank
zpool create tank /dev/gpt/tank.nop
zdb -C tank  #   ashift=12  4KiB  
zpool export tank
gnop destroy /dev/gpt/tank.nop
zpool import tank
zdb -C tank #     ashift   12

まず仮想gnopデバイスを作成し、4 KiBフォーマットを使用することを指定し、tank.nopに注意します.作成後にashiftパラメータが12であるかどうかを確認し、9(512 B形式)の説明が間違っている場合は、確認後にやり直してください.エラーがないことを確認してzpoolをエクスポートし、gnopデバイスを削除してzpoolを再インポートし、ashiftパラメータにエラーがないことを再確認した後、4 KiBのzpoolを使用して作成に成功しました.
zfsパーティションを作成します.システムは4 KiBフォーマットをサポートしていないので、root全体をzrootに入れました(/tmpを除いて、これは後でmdでロードされます)が、homeはtankに入れました.
zfs create tank/home

インストール:インストールシステムの準備
前述したように、手動でインストールします.
export DESTDIR="/zroot"
cd /dist/8.*
cd base && ./install.sh
cd ../lib32 && ./install.sh
cd ../manpages && ./install.sh
cd ../src && ./install.sh all
cd ../kernels && ./install.sh generic
cp -Rlpv /zroot/boot/GENERIC/* /zroot/boot/kernel/

インフラストラクチャとzfsブート構成の構成
chroot /zroot

インストール:インストール前の構成
基本プロファイル
vi /etc/src.conf

LOADER_ZFS_SUPPORT=YES
vi /boot/loader.conf

ahci_load="YES"zfs_load="YES"vfs.root.mountfrom="zfs:zroot"vfs.root.mountfrom.options="rw"vfs.zfs.prefetch_disable=0 hw.pci.do_power_nodriver=3
vi /etc/rc.conf

hostname="gptzfsboot.freebsd.org"defaultrouter="10.0.0.1"ifconfig_re0="inet 10.0.0.1 netmask 255.255.255.0"tmpmfs="YES"tmpsize="512M"zfs_enable="YES"powerd_enable="YES"powerd_flags="-a hadp -b hadp -n hadp -i 25 -p 1500"
vi /etc/resolv.conf

nameserver 8.8.8.8
vi /etc/fstab

/dev/gpt/swap0 none swap sw 0 0
インストール:インストールのコンパイル
zfsをサポートするbootloaderのコンパイルインストール
mount -t devfs devfs /dev
export DESTDIR=""
cd /usr/src/sys/boot/
make obj && make depend && make
cd i386/loader
make install

インストール:インストール後の構成
基本設定コマンド
passwd
tzsetup
cd /etc/mail && make aliases
#   chroot
umount /dev
exit

インストール:完了
cp /boot/zfs/zpool.cache /zroot/boot/zfs/
export LD_LIBRARY_PATH=/mnt2/lib
zfs unmount -a
zfs set mountpoint=legacy zroot
zfs set mountpoint=/home tank/home
exit

再起動すればいいです.
このホームサーバシステムの基本的なインストールは完了しても、その後、システムの最適化とアプリケーション構成を行うことができます.例えばZFSの圧縮機能でソースコードとportsを再生したり、重要なデータに対してタイミングスナップショットを確立したり、冗長データに対して重さを除去したりするなど、ZFSの優位性はここにある.また、システムモニタリングソフトウェア、各種サービスソフトウェアなどをインストールします.