ZFS上のProxMoxのCeph

彼の仕事(システム管理者)では、常に自分の地域に固有のものと知識を探す必要があります。 私たちのオフィスでそのようなものの1つは、ZFSファイルシステムにインストールされたProxMoxです。これにより、アイロンコントローラーを使用せずに適切なRAIDアレイを使用できます。 一度、他に何が驚きで顧客を喜ばせることができるかを考えて、これをすべてCeph分散ファイルシステムにアップロードすることにしました。 そのような決定がどれほど適切であったかはわかりませんが、願いを叶えることにしました。 そして、それが始まった...私はたくさんの記事やフォーラムをシャベルで掘りましたが、何をどのようにすればよいかを詳細に説明する適切なマニュアルを見つけられませんでした。したがって、すべてに対処して、この記事が生まれました。







画像









したがって、原則として、すべてがコンソールで行われ、ProxMox Webマズルは私たちにとって本当に必要ありません。 すべてをテストモードで実行したため、proxymox内で4つのディスクを持つ2つの仮想マシンが発生しました。これは、鉄(入れ子人形の一種)にはあまり強力ではありません。 4枚のディスクはもともと、将来ハードウェアをテストしなくなったように、ZFS10で育てたかったという事実によるものでしたが、金魚は私にはわからない理由で出てきませんでした(実際、理解するのが面倒でした)。 ProxMoxは仮想ディスク上でZFS10をパーティション分割できないことが判明したため、わずかに異なる「地理」を使用することが決定されました。 ProxMox自体はディスクの1つにインストールされ、ZFS1は他の2つで上昇し、3つ目はCephマガジンの下にあったと思われますが、最終的には忘れてしまいました。 それでは始めましょう。







簡単な紹介があります:







2つの場所にproxmoxを新たにインストールしました。 ノードはceph1およびceph2と呼ばれます。 私が指定した場所を除いて、両方のノードですべて同じことを行います。 ネットワークは192.168.111.0/24です。 最初のノード(ceph1)のアドレスは192.168.111.1、2番目のノード(ceph2)は192.168.111.2です。 両方のノードのディスクには次の意味があります。/ dev / vda-ProxMoxが存在するディスク、/ dev / vdbおよび/ dev / vdc-ZFSを対象としたディスク、/ dev / vdd-Cephログ用のディスク。







最初に行う必要があるのは、サブスクリプションを必要とする有料のProxMoxリポジトリを無料のものに変更することです。







nano /etc/apt/sources.list.d/pve-enterprise.list
      
      





そこで、1行にコメントを付けて、新しい行を下に入力します。







 deb http://download.proxmox.com/debian jessie pve-no-subscription
      
      





次に、ProxMoxを更新します。







 apt update && apt dist-upgrade
      
      





Cephを操作するためのパッケージをインストールします。







 pveceph install -version hammer
      
      





次のステップでは、プロキシのクラスターを作成する必要があります。







最初のメモで、順番に実行します:







 pvecm create mycluster
      
      





ここで、myclusterはクラスターの名前です。







2番目のメモ:







 pvecm add 192.168.111.1
      
      





sshキーを受け入れ、最初のノードからルートパスワードを入力する必要があることに同意します。







pvecm statusコマンドでこの全体を確認する







次に、Ceph構成を初期化します(最初のノードでのみ行われ、これが「メイン」になります)。







 pveceph init --network 192.168.111.0/24
      
      





これにより、/ etc / ceph / ceph.confにシンボリックリンクが作成され、そこから引き続きビルドが行われます。







その直後に、[osd]セクションにオプションを追加する必要があります。







 [osd] journal dio = false
      
      





これは、ZFSがdirectIOを認識していないためです。







次に行うことは、ZFSプールを準備することです。 これを行うには、GPTでディスクをマークする必要があります。







 fdisk /dev/vdb
      
      





そこで、gとwを続けて押します(gはGPTテーブルを作成し、wは変更を受け入れます)。 / dev / vdcで同じことを繰り返します。







ミラーZFSプールを作成します。ProxMoxでの慣例であるrpoolを使用して呼び出されます。







 zpool create rpool mirror /dev/vdb /dev/vdc
      
      





zpool status -vコマンドで確認し、取得します(少なくとも必要です)。







 pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 vdb ONLINE 0 0 0 vdc ONLINE 0 0 0 errors: No known data errors
      
      





ZFSプールを作成しました。今が最も重要なことです-cephです。







Cephモニター用のファイルシステム(奇妙な名前ですが、ZFSのドックから取得されます)を作成しましょう。







 zfs create -o mountpoint=/var/lib/ceph/mon rpool/ceph-monfs
      
      





モニター自体を作成します(最初のノードで最初、次に2番目のノードで):







 pveceph createmon
      
      





それから、私がいじくり回さなければならなかったこと、つまり、ZFSでCeph OSDのブロックデバイスを作成し(そして、それが動作するように)、それが機能するようにする方法を開始します。







そして、すべてが簡単に行われます-zvolを通じて







 zfs create -V 90G rpool/ceph-osdfs
      
      





90Gは、破片に引き裂かれるためにCephに与える金額です。 サーバーが仮想であり、100Gを超えるため、サーバーを提供しませんでした。







さて、Ceph OSDを自分でやろう:







 ceph-disk prepare --zap-disk --fs-type xfs --cluster ceph --cluster-uuid FSID /dev/zd0
      
      





--fs-type XFSはCephのデフォルトFSであるため、XFSを選択しました。 FSIDはCephのIDで、/ etc / ceph / ceph.confにあります。 さて、/ dev / zd0がzvolです。







その後、df -hが次のようなものを表示しない場合:







 /dev/zd0p1 85G 35M 85G 1% /var/lib/ceph/osd/ceph-0
      
      





何か問題が発生したため、リブートするか、ceph OSDを再度作成する必要があります。







一般に、これについてはすでにセフを作成しており、ProxMox webmordでそれを操作し、必要なRDBストレージを作成し続けることができますが、それを使用することはできません(実際には、それがすべてでした)。 これは単純な方法で処理されます(このため、まだリポジトリを作成する必要があります)-最初のノードから2番目のノードにcephキーをコピーする必要があります。







ProxMoxストレージ構成を開きます。







 nano /etc/pve/storage.cfg
      
      





そして、そこに必要なRBDを入力します。







 rbd: test monhost 192.168.111.1:6789;192.168.111.2:6789 pool rbd krbd 1 username admin content images
      
      





ここで、testはストアの名前であり、IPアドレスはcephモニターが配置されている場所、つまりプロキシです。 他のオプションはデフォルトです。







次に、2番目のノードでキーのパパを作成します。







 mkdir /etc/pve/priv/ceph
      
      





そして、最初からキーをコピーします:







 scp ceph1:/etc/ceph/ceph.client.admin.keyring /etc/pve/priv/ceph/test.keyring
      
      





ここで、ceph1は最初のノードであり、testはリポジトリの名前です。







これに終止符を打つことができます-ストレージはアクティブで動作しており、すべてのセフバンを使用できます。







ご清聴ありがとうございました!







これをすべて上げるために、これらのリンクを使用しました:







» Https://pve.proxmox.com/wiki/Storage:_Ceph

» Https://pve.proxmox.com/wiki/Ceph_Server

» Http://xgu.ru/wiki/ZFS

» Https://forum.proxmox.com








All Articles