NASボックスとしてのFreeBSD上のZFSに関する推奨事項は?


9

このページの回答は2009年のものであり、福音として信頼されるべきではないことに注意してください。に関する具体的な質問がある場合は、[ 質問する ]ボタンをクリックして具体的な質問をしてください。

FreeBSD 7.2とZFSファイルシステムを使用してホームバックアップシステムを構築することを考えていました。誰もがそのファイルシステムの経験を持っていますか?

具体的には:

  • ZFSから起動できますか?(私はしたいですか?)
  • ドライブを追加するのは簡単ですか?
  • さまざまなサイズのドライブをどの程度うまく処理できますか?
  • 新しいドライブをその場で(または少なくとも再起動だけで)追加できますか?
  • すぐに使えるものがいいでしょうか?

他の考えや提案は大歓迎です。

編集:

明確にするために、私はZFSのFreeBSDページを読みました。私が望んでいるのと同じような設定で実際的な経験を持つ人々からの提案を探しています。

回答:


13

ZFSを使用してホームFreeBSDファイルサーバーを構築しています。

これは、3GBのRAMを備えたAMD X2 3200+です。PCI Express Gig-Eを備えています。ブートドライブは古い400GBで、4つの750GB Seagteドライブがあります(念のため、ファームウェアのバージョンが異なるドライブ)。

ZFSからのブートは良かった(インストールが簡単になる)が、ZFSOnRoot命令を使用してZFSでルート/ 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

パフォーマンスの面では、ファイルのコピーは非常に高速です。私が注意することの1つは、3〜4 GBのFreeBSD AMD64システムでZFSを使用していて、それがうまく機能していることですが、私の読書から、2 GBまたはそれ以上のi386システムで実行するのが心配です。少ないメモリ。

マザーボードのSATAポートが足りなくなったので、新しいドライブを追加しようとしませんでした。初期設定はシンプルで、RAIDZを作成するコマンドと、秒単位でフォーマットされた/ homeを作成するコマンド(IIRC)でした。私はまだ古いバージョンのZFS(v6)を使用しているため、いくつかの制限があります(同じサイズのドライブは必要ありませんが、Droboとは異なり、3つの750GBドライブと1TBドライブがある場合、最終結果は4つの750GBドライブがあるかのようになります)。

RAIDZでZFSを使用した大きな理由の1つは、エンドツーエンドのチェックサムでした。CERNは、R / Wテストを数週間にわたって実行中に200以上の未修正の読み取りエラーが見つかった場合に行ったテストを文書化した文書を発行しました(小売ドライブのECCは12TBの読み取りごとに1回失敗すると予想されます)。サーバー上のデータを修正したいのですが。停電(スペースヒーターをUPSに差し込んでUPSに過負荷をかけた)が原因でハードクラッシュが発生しましたが、システムが復旧できると、ZFSは標準のfsckの問題なしにすばやく復旧しました。

CUPSをSambaに追加してプリントサーバーを取得できるので、気に入っています。DNSキャッシュを追加し、他のソフトウェアを好きなように追加できます(自宅のデスクトップにSNMP監視を追加して、帯域幅の使用状況を測定することを考えています)。私がシステムに費やしたものについては、安価なNASボックスを購入できると確信していますが、64ビットのローカルUNIXボックスを操作することはできません。もしFreeBSDが好きなら、私はそれでいいと思います。Linuxを好む場合は、Linuxソリューションをお勧めします。管理を行いたくない場合は、スタンドアロンNASボックスを使用します。

次のハードウェアアップグレードでは、ハードウェアをアップグレードしてから、ZFS v13がインストールされている現在のバージョンのFreeBSDをインストールする予定です。ZILログに使用できるバッテリーでバックアップされたRAMディスクがあるため、V13はクールです(これにより、書き込みが悲鳴を上げます)。また、SSDを使用してファイルサーバーを高速化することもできます(新しいSunファイルサーバーの仕様は優れており、SSDを使用してシステムを非常に高速にするZFSシステムからそれらを取得します)。

編集:(まだコメントを残すことはできません)。私はほとんどhttp://www.ish.com.au/solutions/articles/freebsdzfsの指示に従いました。これらの指示が書かれてから7.Xに存在する1つの大きな変更は、7.2が出たことで、2 GB以上ある場合は、/ boot / loader.confに次の3行を追加する必要はありません。

vm.kmem_size_max="1024M"
vm.kmem_size="1024M"  
vfs.zfs.arc_max="100M"

また、ミラーを作成する方法、およびシステムをリカバリモードに戻す方法(ZFSでマウント)についても説明します。彼の指示を1〜2回試した後、SunのZFS管理マニュアルhttp://opensolaris.org/os/community/zfs/docs/zfsadmin.pdfを使用して、ZFS について理解を深めました。データストアを作成するために、変更されたバージョンのコマンドを使用してZFSプールを作成しました。これはFreeBSDなので、小さな変更を加える必要がありました。

zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10

dmesg | grep 'ata。* master'を実行してad4-ad10が見つかった場合、これはビッグデータパーティションに使用されるシステム上のSATAハードドライブの名前です。私のマザーボードでは、最初の3つのataポート(ad0-3)に4つのPATAポートがあり、各SATAポートがマスターであるため、古い番号はありません。

ファイルシステムを作成するには、次のようにしました。

zfs create dozer/data
zfs set mountpoint=/data dozer/tank

共有のデフォルトのマウントポイントをオフにしたため、2番目のコマンドが必要です。


あなたはたまたまあなたがしたすべてのメモを持っていますか?そして、あなたはそれらを投稿しても構わないと思いますか?:)
悲しむ

FreeNAS + ZFSに関する素晴らしい投稿。私自身、これについて知りました。あなたの情報をありがとう!
osij2is

11

はじめに: ようやくシステムを構築しました。他の人を助けるために、ここに私のメモがあります。

目標:

  • 私のソース管理および内部Webサーバーとしても機能するホームNASボックスを構築します。
  • 費用を1000ドル未満に抑える

仕様:

  • 少なくとも1テラバイトのストレージが必要
  • データの冗長性が必要(RAIDまたは類似のもの)
  • 私の現在の古いソースコード管理サーバーを置き換えることができる必要があります

設計:

  • FreeBSD 7.2(最終的には8.0にアップグレードされる予定)。
  • OSは独自のブートドライブ上にあり、この場合は1つのIDEドライブ
  • データは6つのSATAドライブに保存されます。

ファイルシステムとしてZFSを使用しています。これは、このような好評を得ているためです。ZFSでは、64ビットOSを実行する必要があり、多くのメモリが好きなので、最低4Gbを取得する必要があります

ハードウェア:

ソフトウェア: FreeBSD 7.2-1 @ $ 0.00 http://www.freebsd.org/

総費用: 874.81ドル

ハードウェアのセットアップ: 基本的なコンピューターのビルド。3つの小さな問題があります。

  1. 私が購入したケースには、6つのハードドライブ用のスロットと2つの3.5ベイがありました。IDEが3.5ベイの1つに収まると思いました。これは悪い仮定であり、それを機能させるための合理的な方法がありませんでした。私は行ってFry'sで約$ 17.00でアダプターを購入しましたが、それはうまくいきました。

  2. 私が購入したSataケーブルには90度のコネクタがあり、6つのドライブがなければ動作する方法がありませんでした。1本のケーブルを差し込むと、コネクタの柔軟性のない部分が次のハードドライブにぶら下がりました。私はフライズに行く必要があり、5本の通常のSATAケーブルで行かなければなりませんでした。悲しいことに、私がニューエッグで購入したものはとても安かったので、それらを送り返す価値はありませんでした。

  3. ケースはハードドライブの背面をケースの側面に向けており、電源からの電源ケーブルには、ケースの端から突き出ている堅いコネクタがあります。これでは、サイドカバーを元の位置に戻すことができませんでした。私はそれを機能させるために少し遊んでいなければならず、結局、2つのモジュラー電源ケーブル(それぞれに4つのSATAプラグがある)がドライブ間に差し込まれ、最初のケーブルで駆動されるドライブ0、 2、4、2番目のパワード1、3、5。これにより、十分なフレックスが可能になり、ジッパーで邪魔になりませんでした。

OSセットアップ:

  1. FreeBSD 7.2 ISOをCDに書き込みました。1枚のDVDを使用することもできましたが、うそをつくことはありませんでした。

  2. memtest86 +(http://www.memtest.org/)をCDに書き込みました。

  3. 新しく構築されたコンピューターの電源を入れ、BIOSにアクセスして、7つのドライブすべてとDVD-ROMが表示されることを確認しました。ありました。ブート順を変更して、CDROMが最初になるようにしました。

  4. 新しく構築されたコンピューターにmemtest86 + CDを挿入し、再起動して、一晩実行しました。エラーなしで渡されました。

  5. あなたはこの私に慣れていない場合はFreeBSD 7.2をインストールすると、以下のことを読んでお勧めします。http://www.freebsd.org/doc/en/books/handbook/install.html それは私よりも何をすべきかを説明するのより良い仕事をしていませんできる。これが私の特定の設定です:

    • 標準インストールを行いました
    • OSにIDEドライブ全体を使用
      • デフォルトのファイルシステムレイアウトを使用
      • 6つのSATAドライブをそのまま残しました
    • ボックスがヘッドレスになるため、X-Windowsなしの開発者インストール
    • システムはNFSクライアントまたはサーバーではありません
    • FTPおよびinetdが無効
    • SSHが許可されました
    • パッケージは追加されませんでした(後で追加される予定です)。
    • 1人のユーザーを追加しました
  6. インストールして再起動した後、6つのSATAドライブのうち4つだけが検出されたことがわかりました。BIOSに入り、Under Integrated PeripheralsがOnChip SATA TypeをAHCIに変更し、OnChip SATA port 4/5 Typeを "SATA"に変更しました保存した設定で再起動しました。

  7. この時点で、FreeBSDは6つのドライブすべてを次のように検出しました:ad4 ad6 ad8 ad10 ad12 ad14

  8. csupを使用してcvsから最新を取得します。csup -g -L 2 stable-supfileホストを使用するようにファイルを編集済みです:cvsup11.us.FreeBSD.org他のすべての情報はそのままにします。

  9. 以下の説明に従って、最新のカーネルとワールド を再構築およびインストールしました。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セットアップ:

  1. ストレージ用のZFSプールを作成します。zpool create storage raidz2 ad4 ad6 ad8 ad10 ad12 ad14

  2. 新しく作成したストレージにホームファイルシステムを作成します。

    zfs create storage/home
    cp -rp /home/* storage/home
    rm -rf /home /usr/home
    zfs set mountpoint=/home storage/home
    
  3. /etc.rc/confを編集して、以下を追加します。

    zfs_enable="YES"
    

    これにより、起動時にZFSファイルシステムがマウントされます。

  4. 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
    

    プールにさらにファイルシステムが必要でない限り、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

素晴らしい答え!賛成投票...チェック!
Mei

5
  • ZFSから起動できますか?(私はしたいですか?)

理由はわかりませんが、スナップショットのサポートはOpenSolarisで十分に成熟しているため、古いバージョンに切り替えてブートできるようになっていると思います(ただし、実際には単なる推測ですが)。

  • ドライブを追加するのは簡単ですか?

ストライププールを拡張するように追加しますか?ドライブをプールに追加するだけです。あなたの次の質問の意味を考えてください。

  • さまざまなサイズのドライブをどの程度うまく処理できますか?

これをストライプとして使用して、ZFSにファイルのn個のコピーを保持するように指示できます。だから、あなたはあなたが持っている完全なストレージの可用性を使用し、それでもまともな冗長性を得ることができます

  • 新しいドライブをその場で(または少なくとも再起動だけで)追加できますか?

ストレージプール内のデバイスの交換これが推奨されるソリューションだと思います。これがFreeBSDでどのように機能するかを確認する最も簡単な方法は、おそらく試してみることです。

  • すぐに使えるものがいいでしょうか?

FreeNAS(Roadmap) 0.70がリリースされそうで、ZFSをサポートすることを検討しましたか?

すべてのフレームワークの手間を省き、それを使って無料で比較的使いやすいGUIを手に入れます。


FreeNAS 0.7RC1を使用していますが、ZFSでセットアップするのはとても簡単です。
ジョセフ

3

私は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で使用することはできません(私が正しく思い出せば、最小のHDDスペースのみが使用可能になります)

(オープン)SolarisはすぐにZFSをサポートしています



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.