FreeBSD:devfsからシンボリックリンクを削除する

FreeBSD:devfsからシンボリックリンクを削除する

背景

私は小さな家庭用NASを再構築しています。このサーバーは、サーバー管理への私の最初の「実際の」進出を意味し、多くのことを教えてくれました。もともとこれは、raidz1の3つのディスクで構成されたサムドライブでFreeNASを使用して設定されました。それ以来、私はシステムをよりよく制御し、「自分で実行する」方法を学ぶために、システム全体をFreeBSD 9.0(安定版)に移行することにしました。すべてが順調に進行し、OSが正常にインストールおよび更新されました(フラッシュの乱用を防ぐために、サムドライブ、RW、アクセス時間、およびその他のいくつかが無効になっています)。

これで、raidz1を使用してディスクストレージを設定しています。そのために、アーカイブしたいすべてのファイルを外部リポジトリにコピーしました。さまざまなzfsコマンドを探索している間、FreeNASインストールの元のzpoolがまだ表示されることがわかりました。以下を使用してプールをインポートしてアップグレードしました。

# zpool import ZFS1 tank   //Import the original zpool 'ZFS1', renaming it 'tank'
# zpool upgrade tank       //FreeNAS uses an older ZFS version, FreeBDS is v28
# zfs mount tank

そして私のファイルをもう一度見ることができました。スープ。いくつかのナビゲーションの後、私は古いプールを捨てて再開することにしました。私は送る

# zfs umount tank
# zpool destroy tank

エラーなしで完了しました。今、私はこのディスクを使って「きれいな」raidz1を作り直したいと思います。

質問

新しいraidz1を作成する前に、/dev私は何を学ぶことができるかを知るためにRAIDZ1についていくつかの調査をしました。アレイで使用されているディスクを確認したいのですが、出力結果が奇妙に見えます。さらに悪いことは、Google検索が実際に何が起こっているのかを説明しないことです。ディスクのリストは次のとおりです。

# ls -l ad*
lrwxr-xr-x  1 root  wheel            4 Aug 12 20:50 ad2 -> ada2
lrwxr-xr-x  1 root  wheel            4 Aug 12 20:50 ad4 -> ada0
lrwxr-xr-x  1 root  wheel            4 Aug 12 20:50 ad6 -> ada1
crw-r-----  1 root  operator    0,  96 Aug 12 20:50 ada0
crw-r-----  1 root  operator    0,  98 Aug 12 20:50 ada1
crw-r-----  1 root  operator    0, 100 Aug 12 20:50 ada2

私はRaidを設定したときにFreeNASで3つの仮想ディスクを作成したことを知っており、それがリンクのソースであると疑われます。これに関する私の質問は次のとおりです。

  1. シンボリックリンクの仕組みを検索すると、シンボリックリンクは1つのプロジェクトを別のプロジェクトにリンクするファイルにすぎないことがわかりました。この場合、ada *デバイスが "l"属性としてリストされておらず、実際のハードウェアデバイスが他のプロパティ(おそらくブロックデバイス)としてリストされていないのはなぜですか?

  2. このリンクは前の設定の結果です。考える必要。削除できますか?それでは、どうすればいいですか(ランダムに削除するのは少し怖いです。リソースセクションの最後のリンクを参照してください)。エントリを削除すると、存在しないリンクを参照するため、ノードはad*暗黙的に削除されますか?ada*それともこの回帰はありますか?

  3. 実際のハードウェアデバイスとは何ですか?前の質問で述べたように、ad*ノードは文字デバイスまたは同様のものであり、ada*ノードはリンクされたファイルになると思いました。

  4. 最後に、設定と個人の好みによって明らかにわずかな違いがあることを知っています。しかし、単純なraidz1用にSATAデバイスを設定する「許可された」方法は何ですか?単純な家庭用NASの場合、これらすべてのシンボリックリンク事業は過剰に見えるかもしれません。

このように長い文を載せて申し訳ありませんが、私は長い間この内容を理解しようと努力してきました。あなたの時間と助けに感謝します。

引用する

ベストアンサー1

  1. adaデバイスは最新のSATAポートに接続されたドライブです。一部の人々はメモを逃したため、DevFSは、既存のデバイスと同様に、これらのデバイス名へのシンボリックリンクを提供するように修正されましたad。ただし、システムにすでにいくつかの古いSATAポートまたはIDEポートがある可能性があるため、これらのポートはより低いadデバイス番号(ad0、ad1など)を占有します。したがって、マッピングされたadaデバイスはより高い数字を持ちます。

    注:まだ気付いていない場合は、/dev他の種類のファイルシステム(ファイルシステムの開発)。これはシンボリックリンクのような単純な構造を示していますが、あなたが考える意味では実際のシンボリックリンクではありません。

  2. 前提が間違っています。 #1をご覧ください。
  3. l(あなたが指摘したように)シンボリックリンクとは言わないのはデバイスドライバです。ソフトウェアは機器を提供する可能性があるため、「真正」の程度はさまざまです。
  4. 私の考えに「最も良い」アプローチは、GPTパーティションを使用し、合理的な名前を付け、これらの名前付きパーティションをraidzのvdevとして含めることです。

    次のようなトリックを行います。

    gpart create -s GPT ada0
    gpart create -s GPT ada1
    gpart create -s GPT ada2
    
    gpart add -t freebsd-zfs -l tank-disk0 ada0
    gpart add -t freebsd-zfs -l tank-disk1 ada1
    gpart add -t freebsd-zfs -l tank-disk2 ada2
    
    zpool create tank raidz /dev/gpt/tank-disk0 /dev/gpt/tank-disk1 /dev/gpt/tank-disk2
    

    それ以外の場合は、ディスクをZFSに直接転送するのが最善です。両方の構成の支持者があります。このパスを使用する場合は、smartdディスクの状態監視も設定することをお勧めします。またperiodic、zpoolを清掃し、SMARTを監視し、定期的に(毎週または希望する時間に)レポートを送信するように設定することもできます。

ちなみに、FreeNASやその他のFreeBSD派生プロジェクトを使用すると、単にコアオペレーティングシステムを掘り下げるよりも、FreeBSDの操作がはるかに簡単になります。手動設定したいほとんどの項目について案内されますが、時間が経つにつれていくつかの問題に直面します。 Google で「ハンドブック」を検索する場合、FreeBSD ハンドブックが 2 番目のリンクです。非常に重要で人気があり、良いです。

参照に関する追加の注意事項です。最初は悪い例です。ネットワークカードをシンボリックリンクしてはいけないので、名前を変更する必要があります(ファイルシステムの種類の名前を変更しないでください)。 DevFSは、ほとんどが期待どおりに接続と切断要求に応答します。 2番目と3番目の参照はよさそうです。シンボリックリンクよりも多くの種類のリンクがあることに注意してください。

おすすめ記事