#author("2023-07-09T07:28:46+09:00","default:dramsukohome","dramsukohome")
#author("2024-04-26T21:01:09+09:00","default:dramsukohome","dramsukohome")
[[LinuxServer]]

#shadowheader(1,"Proxmox")

#contents




* 参考サイト [#qdba0148]
-[[GPUパススルーも簡単にできる仮想化プラットフォーム「Proxmox VE」(Internet Watch):https://internet.watch.impress.co.jp/docs/column/shimizu/1442466.html]]
-[[ラズパイが高いなら5千円の中古シンクラを使えばいいじゃない。シンクラ×3で作る家庭用ハイパーコンバージド環境(PC Watch):https://pc.watch.impress.co.jp/docs/column
/kaimono/1464643.html]]
--ちなみにこのシンクライアント端末は既に市場には無いので、ヤフオクでCeleronでVT-x対応の安いPCを探す方が良い
-[[ProxMox公式:https://pve.proxmox.com/pve-docs/]]




* 最初に[#c5d32a2d]



** 概要 [#m3454561]
- Proxmox VE という仮想化プラットフォームがある事を知ったので~
ちょっと構築してみようかと思いました〜(^^)
- 検証時のVersion -> 7.3
- 古いPCを有効活用できる技術です。



** 特徴 [#sca653f4]
+フリー
+vCenterありのVMWareの機能(複数サーバでのHA, クラスタリング、仮想マシンの移動など)が可能
+VMWareでいうvSANのような機能をcephで実現
+GUIあり
+対応CPUの幅が広い~
(Debianのため)~
(Intel VT-x機能があれば大抵動く。Celronでも可能)~
(VMWareはほぼXEONでしか動かない)
+ 既存システムとの共存可能
-- Debianのため




* Install, Download [#zcc85cbf]



** Download [#w2a5a012]
- [[https://www.proxmox.com/en/downloads/category/iso-images-pve]]
- ISO をダウンロードしてDVDを作成しインストール



** 初回アップデート [#ebd86128]
-参考:[[Install Proxmox VE:https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_11_Bullseye#Install_Proxmox_VE]]
+ Sources list を変更
 echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
+gpg keyのダウンロード
 wget https://enterprise.proxmox.com/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg 
+pve-enterprise.list のコメントアウト
 vi /etc/apt/sources.list.d/pve-enterprise.list
-- 変更前
 deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise
-- 変更後
 #deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise
+repository の更新とアップグレード
 apt update && apt full-upgrade



** 最低限のソフトのインストール [#j5e1e551]
 apt install vim ethtool tmux clamav iftop iotop qemu-guest-agent sudo



** IPV6 の無効化 [#b8b16c21]
-以下を追加
-sudo vi /etc/sysctl.conf
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.default.disable_ipv6 = 1
-反映
 sudo sysctl -p



** LDAP参加 [#xa209052]
-サイト内リンク:[[openldap#l7ae19bd]]


** tmux の設定 [#h0a66ce1]
-サイト内リンク:[[LinuxCommon#q477635c]]




* 起動後の初期ユーザー名 [#f452b50f]
- root
- URL : https://(IP address):8006
-- 例) https://123.123.123.123:8006/




* クラスタの作成 [#h4744fb4]
+ 「データセンター」-> 「クラスタ」(上から4つめ)
+ 「クラスタの作成」
+ クラスタ名を入力してそのまま作成する。


** クラスタへの参加(Join) [#k8db5acb]


*** 既存ホストでの作業 [#t89e7b19]
+ 既存のホストから「データセンター」を選択 -> 「クラスタ」->「Join情報」
+ 「Join情報」をコピー


*** 新規ホストでの作業 [#wa8fe57e]
+「データセンター」を選択 -> 「クラスタ」
+「クラスタに参加」
++ 先程のJoin情報を貼り付け
++ rootのパスワードの入力(不要?)



** クラスタから削除 [#l0f4184a]
-ProxMoxホストのシャットダウン
-別のホストに ssh でログインして、対象ノードを削除する。
-- sudo pvecm delnode pve2
-以下のディレクトリを削除
--sudo rm -fr /etc/pve/nodes/pve2




* ストレージ, 通常(ceph以外) [#r86b9499]



** 新規HDDの追加(thin diskの追加) [#jbff0ebb]


***GPT初期化 [#he7cfa19]
+左ツリーから個別のホストを選択
+ディスクを選択
+新規に追加したdisk(sdbとかsdc)を選択
+「GPTでディスクを初期化」ボタンを押す


***LVM-Thinを作成 [#q535ce37]
+「LVM-Thin」を選択
+「作成: Thinpool」ボタンを押す
+ディスクを選んで名前を適当に付ける。例) prox01SdbThin


*** 消す場合 [#wcac7127]
+左ツリーから個別のホストを選択
+ディスクを開く
+「LVM-Thin」の中の消したい名前を選択
+右上の「More」を開き「破棄」を選択




* 分散ファイルストレージ(ceph)を構成 [#o4ac2ecc]



** 概要 [#ee696468]
- とりあえず最低限、3台のPCやサーバが必要
- Thin は無い



** インストール [#e3bf8ebf]
+ 「データセンター」-> 「Ceph」(上から5つめ)をクリック
+ 「Cephをインストール」をクリック
+ 「Quincyのインストールを開始」をクリック
++ 「Do you want to continoue」 と聞かれるので「y」 Enterを入力
++ インストールが完了したら「次へ」を押す



** 設定 [#sa18540f]
+ 「Public Network IP/CIDR」は選べるのを選んでおく
+ 「Cluster Network IP/CIDR」もとりあえず選べるのを選んでおく
+ 「Number replicas」と「Minimum replicas」はとりあえず標準のままで「次へ」
+ 「完了」ボタンを押す



** モニタ [#qf4cd17e]
+ 新規 ceph サーバを立てたら登録が必要



** OBD [#j6d2997a]
+ ディスクの登録が必要



** pool [#f9155443]
+ 仮想マシンを保存できるcephのストレージ
+ これがないとvMotion的な「マイグレート」もストレージ移動が伴うと思う
- サイズ : レプリカ数(最小3)
- minサイズ : 縮退運転のサイズ(最小2)



** 状況確認, Status,等 [#afdae74d]
-cephの容量が一杯になるのはどのタイミングでなるのか
-参考サイト
++[[6 クラスタの状態の判断(SUSE):https://documentation.suse.com/ja-jp/ses/6/html/ses-all/ceph-monitor.html]]
++[[9 保存データの管理(SUSE):https://documentation.suse.com/ja-jp/ses/6/html/ses-all/cha-storage-datamgm.html]]
+まず一杯になる前兆などの指標
++ OSD_NEARFULL : もうそろそろリバランスできなくなりますよ、って警告
++ OSD_BACKFILLFULL:既にリバランスができないよ、って警告
++ OSD_FULL:クラスタの書き込みが実行できなよ、って警告



** 仮想マシンの中のディスクが[No Such File or Directory]で消せない [#c25c5bb5]
-rbdコマンドを使用して直接消す
-参考サイト:[[Basic Block Device Commands(ceph):https://docs.ceph.com/en/quincy/rbd/rados-rbd-cmds/]]
-コマンド
-- ディスク一覧の確認
 sudo rbd ls cephPoolName
-- 消去のコマンド 
 sudo rbd rm {pool-name}/{image-name}
--- 例
 rbd rm cephPoolName/vm-106-disk-1



** cephをフルに近くしてめちゃくちゃ遅くなった時 [#j1b8bab6]
+とりあえずモニタサーバを順番に再起動
+容量を見るのはOSD一覧(cephのサマリでは容量逼迫を検知できない)
+HDDの1つがやたらと遅い可能性もある。
-- OSD一覧からLatencyも確認
+rewaightの調整
+以下、チラ裏。。。
-- 大きいディスクを消す時、めちゃくちゃ重い。~
1時間に1% 位しか進まない。。。~
そのおかげで、他のサーバに影響が出ていて、DNSやDHCP, Proxyなどインフラ周りのサーバはもちろん、~
Webサーバやデータベースサーバにも影響が出ていてしんどい。。。~
日記用のプライベートWordpressにもアクセスできないし、SKKのGoogle IMEも利用できないので、~
日本語変換もままならん。。。早く解決しないかなぁ。。。
-- 次の日には直りました(^^)



** ディスクエラーの消し方 [#i7de75bc]
- alertを消すコマンド
 sudo ceph crash ls
 sudo ceph crash rm 2022-04-28T05:36:52.440294A_5c65D2b3-8281-47b3-9ae8-305c59d21d14
-- 一括消去コマンド
 sudo ceph crash ls | cut -d ' ' -f 1 | sudo xargs -I{} ceph crash rm {}
-マネージャーの停止-> 起動
++ ホスト
++ Ceph
++ モニタ
++ マネージャー
--- 2つ以上のマネージャーが必要(でないと止まっちゃうので)
-仮想マシンに実装したディスクを消せなくなった
++ sudo rbd ls cephPool
++ sudo rbd rm vm-106-disk-1
++ sudo vi /etc/pve/nodes/pveHostName/qemu-server/106.conf
--- delete below row
 vm-106-disk-1,cache=writeback,size=2470G



** リカバリ, リバランスのために仮想マシンが重い, 遅い(ceph, チューニング) [#s9674b77]
- 参考サイト
++ [[OSD Config Reference(ceph公式,英語):https://docs.ceph.com/en/quincy/rados/configuration/osd-config-ref/]]
++ [[OSD リカバリを高速化または低速化する方法(SUSE,日本語):https://www-suse-com.translate.goog/support/kb/doc/?id=000019693&_x_tr_sl=auto&_x_tr_tl=ja&_x_tr_hl=ja]]
++ [[テラバイトでの OSD の重みの設定(redhat,日本語):https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/5/html-single/storage_strategies_guide/index#_set_an_osds_weight_in_terabytes]]
--- [[使用状況による OSD の重みの設定(redhat,日本語):https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/5/html-single/storage_strategies_guide/index#_set_an_osds_weight_by_utilization]]
++ [[How to speed up or slow down osd recovery(SUSE,英語):https://www.suse.com/support/kb/doc/?id=000019693]]
- ProxMoxのホストへログオンして実行する
+ 一番効果が高い方法(osd_recovery_op_priority, osd_client_op_priority 1)
-- 数字が低い方が高優先度
-- 自分は一晩放置したら反映されてました
-- 値は1〜64
-- 例
--- sudo ceph config set osd osd_recovery_op_priority 63
--- sudo ceph config set osd osd_client_op_priority 1
+ どうしても重い時はリカバリ, リバランスを停止
-- 停止
 sudo ceph osd set nobackfill
-- 再開
 sudo ceph osd unset nobackfill
+ その他、効きそうな設定
++ sudo ceph config set osd osd_max_backfills 1
++ sudo ceph config set osd osd_recovery_max_active 1
++ sudo ceph config set osd osd_max_pg_log_entries 1
++ sudo ceph config set osd bluestore_cache_autotune 1
++ sudo ceph config set osd osd_memory_target 2G
--- これはあまり効いてる感じはしないかな。。。
++ osd_memory_cache_min 2147483648
--- 2GB
++ sudo ceph config set osd osd_backfill_full_ratio 0.3
--- 自分の環境では以下のエラーで動かなかった。。。
 Error EINVAL: unrecognized config option 'osd_backfill_full_ratio'
--- Ceph OSD のフル比率がこの値以上の場合、バックフィル要求の受け入れを拒否
++ ceph tell 'osd.*' injectargs '--osd-max-backfills 1'
++ sudo ceph config set osd osd_backfill_scan_max 128
++ sudo ceph config set osd osd_op_num_threads_per_shard 0
--- これはbackfill, recoveryにあまり影響しないので、デフォルトの0推奨~
0以外だとストレージがやたらと重くなる


*** full ratio [#i83ac23b]
-sudo ceph osd set-nearfull-ratio <float[0.0-1.0]>
-sudo ceph osd set-full-ratio <float[0.0-1.0]>
-sudo ceph osd set-backfillfull-ratio <float[0.0-1.0]>



** その他, コマンドなど [#i0a63a4c]
+ 参考サイト
++ [[Red Hat Ceph Storage:https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/5/html/administration_guide/placement-group-recovering-state_admin]]
++ [[SUSE Enterprise Storage 6とCeph:https://documentation.suse.com/ja-jp/ses/6/html/ses-all/cha-storage-about.html]]
++ [[Red Hat PG数の増加:https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/3/html/troubleshooting_guide/increasing-pg-count]]
+ sudo ceph config set mon mon_osd_down_out_interval 600
-- OSDがdownしてパフォーマンス低下した場合、outにするまでの時間(デフォルト:600秒)
+ osd recovery threads
-- デフォルトで 1 つのスレッドでリカバリープロセスのスレッド数が制限されます
+ sudo ceph config set osd osd_recovery_max_active 3
-- ceph OSD が送信に失敗するのを防ぐために Ceph OSD が同時に実行するリカバリー要求の数を制限します。
+ osd_max_backfills
-- Ceph OSD から 10 への同時バックフィルの最大数を設定します
+ ワークロードによっては、通常のリカバリーを完全に回避し、代わりにバックフィルを使用することが推奨されます。~
バックフィルはバックグラウンドで実行されるため、I/O は OSD のオブジェクトで続行できます。~
osd_min_pg_log_entries オプションを 1 に設定し、osd_max_pg_log_entries オプションを 2 に設定することで、~
リカバリーではなくバックフィルを強制できます。 
+ PG(Placement Group)の数を変更する(256へ変更)
 sudo ceph osd pool set cephPool pg_num 256
+ scrub関連
-- scrubコマンド
 sudo ceph pg deep-scrub <PG_ID>
--- 例
 sudo ceph pg deep-scrub 6.ce
-- osd_deep_scrub_interval
 osd_deep_scrub_interval


** weight, reweight関連 [#nf06f16a]
+ reweight
-- ''個人的にはreweightよりweightの変更がおすすめかと思いました。''
--- ストレージに余裕があっても degrated が残る時があるので。。。
-- 参考サイト[[2.5.3. OSD の in 重みの設定(RedHat):https://access.redhat.com/documentation/ja-jp/red_hat_ceph_storage/4/html/storage_strategies_guide/_set_an_osds_in_weight]]
-- reweightコマンド
 sudo ceph osd reweight {osd id} {weight}
---- 例
 sudo ceph osd reweight 2 0.8
++ 使用状況による OSD の重みの設定(自動, reweight)
+++ &color(red,){この方法は大量のBackfillを産むので注意!個別調整がお勧め};
+++ 設定
---- sudo ceph osd reweight-by-utilization [threshold]  [weight_change_amount] [number_of_OSDs] [--no-increasing]
----- threshold : 101〜120
----- weight_change_amount : weight を変更する値。0.01〜1.0。~
例えば 0.5 で設定すると、Max 0.5の加減でreweight値を変更する。
----- number_of_OSDs : いくつのosdを変更するか。5個のosdを変更したい場合は 5。 10個なら10
----- --no-increasing : Weightを増やさない。個人的にはこのオプションは無くても良いと思う
---- 例)
 sudo ceph osd reweight-by-utilization 101 0.5 10
+++テスト
 sudo ceph osd test-reweight-by-utilization 101 0.1 11
++ 手動(reweight)
---[[#afdae74d]]
+ weight
++ 1つずつ更新(weight)
 sudo ceph osd crush reweight name weight
--- 例
 sudo ceph osd crush reweight osd.1 0.8
++ ceph pool バケット名による一括更新(weight)
--- sudo osd crush reweight-subtree <buckets name> <weight>
--- 例
 sudo osd crush reweight-subtree hostName 0.9
--- ceph pool bucket名は以下から参照
---- 「データセンター」-> 個別ホトト ->「Ceph」->「設定」->「Crush Map」


** ネットワークBonding(Teaming) [#q96a3f4b]
- cephのネットワーク帯域がアップアップで遅いので、Bonding(Teaming)してみます。~
(今回はLinuxなので「Bonding」の言葉で統一します)
- 設定手順
++ bond0の作成
+++ 「データセンター」配下からBondingしたいホストを選択
+++ 「システム」->「ネットワーク」~
ネットワークの設定は「設定を適用」ボタンを押すまで反映されないので、~
それまで自由にいじれます。戻したい時は「リバート」を選択
+++ ホストにsshして、以下のファイルをバックアップしておいた方が良いかもしれません。
 /etc/network/interfaces
 sudo cp /etc/network/interfaces /etc/network/interfaces.bak
---- 戻す時(切り戻し時、設定したけどネットワークが繋らない時)は以下
 sudo cp /etc/network/interfaces.bak /etc/network/interfaces
 sudo systemctl restart networking
+++ 今の「vmbr0」のIPアドレスをメモしておく
+++ 今の「vmbr0」を削除
+++ 「作成」->「Linux Bond」
---- 名前:bond0
---- IPv4/CIDR : (空白)
---- ゲートウェイ : (空白)
---- スレーブ:enp0s31f6 enp1s0
----- スレーブはNIC2枚を指定。スペース区切り
---- モード : balance-alb~
&color(red,){(balance-alb以外を選択する時は、上位スイッチの設定が必要となる時があるので注意すること。};~
&color(red,){ここの設定を間違えるとホストがネットに繋らなくなる)};
++ vmbr0の作成
+++ 「作成」->「Linux Bridge」
---- 名前:vmbr0
---- IPv4/CIDR : 123.123.123.123/24
---- ゲートウェイ : 123.123.123.254
---- ブリッジポート : bond0
++ 「設定を適用」を押す~
&color(red,){このボタンを押す時はサーバの前に居る事を強く推奨。};~
&color(red,){ネットワークに繋がらなくなるとコンソールでの作業が必要};



** Cluster network [#l8765999]
-vim /etc/ceph/ceph.conf
-- cluster_network = 192.168.123.123/24
-- [mon.hostA]
         public_addr = 192.168.121.121
         cluster_addr = 192.168.123.123



** パブリック・ネットワークを別セグメントとする [#caf2d647]
- sudo vi /etc/ceph/ceph.conf
- Monitorアドレスの変更
 mon_host = 192.168.123.123 192.168.124.123 192.168.123.124 192.168.124.124 192.168.123.125
- 以下も変更
 [mon.hostName]
         public_addr = 192.168.124.123
- ネットワークのサブネットマスクやルータはちゃんと設定する事
-- & 上記の設定とネットワーク設定などを変更したあとはpingコマンドなどで疎通確認をする



** Crush map の編集 [#r6ae4250]
- 参考サイト : [[Ceph(Octopus)の構築(設定編 Crush Map)(Qiita):https://qiita.com/iriya_v00v/items/2a263a7817434e8b91ed]]
+ crush map の出力
 sudo ceph osd getcrushmap -o /tmp/crush
+ テキストへ変換
 sudo crushtool -d /tmp/crush -o /tmp/crush.txt
+ cruch map の編集
 sudo vim /tmp/crush.txt
+ テキストをバイナリへ
 sudo crushtool -c /tmp/crush.txt -o /tmp/crush.new
+ バイナリをアップロード
 sudo ceph osd setcrushmap -i /tmp/crush.new
+ 反映
 ceph -w



** osd, monitorサーバの削除(削減)方法 [#e0c28647]


*** osd [#tdf33db0]
+ OSDの止める
+ OSDを選択し、「More」->「破棄」を選択


*** Monitor [#c8fa81ae]
+ マネージャー登録がある場合は、最初にマネージャーを破棄
+ モニターを停止
+ 破棄


*** 色々ミスった時(消せなくなった時) [#c4b686d5]
+sudo vim /etc/ceph/ceph.conf
+crush mapの編集[[c#r6ae4250]]
+sudo ceph mon remove (nodename)
++ 例
 ceph mon remove proxve07



** osd の class を hdd から ssd へ変更する [#mb14fa85]
-参考サイト:[[17 保存データの管理(SUSE):https://documentation.suse.com/ja-jp/ses/7/html/ses-all/cha-storage-datamgm.html]]
+最初に osd の class を削除
-- 例
 sudo ceph osd crush rm-device-class osd.2 osd.3
+class を設定
-- 例
 sudo ceph osd crush set-device-class ssd osd.2 osd.3



** possible data damage 1 pg inconsistent [#edf34c30]
+ sudo ceph health detail
 HEALTH_ERR 115 scrub errors; Possible data damage: 2 pgs inconsistent
 [ERR] OSD_SCRUB_ERRORS: 115 scrub errors
 [ERR] PG_DAMAGED: Possible data damage: 2 pgs inconsistent
    pg 6.60 is active+clean+scrubbing+deep+inconsistent+repair, acting [1,12,9]
    pg 6.a0 is active+clean+inconsistent, acting [12,10,9]
+以下、繰り返す
++ sudo ceph pg repair 6.60
++ sudo ceph pg repair 6.a0
++ sudo ceph health detail



** CephFS [#xccd7503]


***特徴 [#p517c621]
+ファイルサーバ機能。
+仮想マシンは作れない


***消し方 [#xc0611f0]
- 参考サイト[[Destroy CephFS(ProxMox):https://pve.proxmox.com/pve-docs/chapter-pveceph.html#_destroy_cephfs]]
+ ストレージのアンマウント(データセンターから)
+ 各ノードの「Ceph」->「CephFS」からメタバースを停止 -> 破棄
+ 以下のコマンドを実行
 pveceph fs destroy NAME --remove-storages --remove-pools



** 課題と今後 [#qe6d2aff]


*** 課題 [#f1d5facc]
+ とにかく遅い。
-- Moose File Systemの方が体感的には圧倒的に早い
-- 参考サイト1:[[【ストレージ初心者向け】分散ストレージ、Cephの速度を計る(1)(Qiita):https://qiita.com/tj8000rpm/items/d01510282448ef105366]]
-- 参考サイト2:[[「Ceph」を高速化する方法と、Windows環境で使う方法:https://techtarget.itmedia.co.jp/tt/news/1907/18/news04.html]]
+++ 
+ リバランスの負荷が実環境に影響を与える(遅いので)
-- 結果、DNS, DHCP, Proxyのようなネットワーク基幹となるシステムも止まる。
+ ストレージの使用率がばらける(Weight調整がマニュアル指向)
-- 結果、osdがフルになり止まる
-- rewight より weight を直接変更した方が良い
+ ProxMox用を起動するストレージの一部をcephへ転用できない。
-- できるのかもしれないけどやり方がわからない


***今後 [#ae5b7e45]
+ ファイルサーバ機能はMoose File Systemを継続
+ 仮想環境の共通ストレージのみcephとする




* その他、ストレージ関連 [#f8f39d1e]



** ディスク, disk, キャッシュ関連 [#l14c8a9b]
-参考サイト:[[]]
+参考サイトからの結論
++ キャッシュはHDDの場合、Write back
++ キャッシュはSSDの場合、Write back(unsafe)
++ SSDならSSD エミュレーションはON
++ IO ThreadはON
++ SCSIコントローラーはVirtio SCSI Single
++ Barrier無効化は効果があるがリスク対効果を考えて設定


*** CentOS6ではエラー [#w15ee231]
-ひっかかったのは、SCSIコントローラ
-- Virtio SCSI Singleではパニックエラー(panic+0xa7)が起きるため、「LSI 53C895A」とした。



** ISOイメージ用のストレージ [#g52994f9]
-参考サイト:[[Storage(ProxMox):https://pve.proxmox.com/wiki/Storage]]
-対応状況:とりあえず代表的なものだけ
++ Directory
++ NFS
++ CIFS
++ CephFS




* 仮想マシンの追加 [#df683a94]
+ProxMoxのWeb管理コンソール、右上「VMを作成」ボタンを押す~
(コンテナはceph poolでは作れないので注意)
+全般
++ 「ノード」(ProxMoxのホスト)を選択
++ 「VM ID」:適当にダブらない3桁の数字 例) 123
++ 「名前」:仮想コンピュータの名前
++ 「リソースプール」:空白
++ ネットワーク(NIC)の「ファイアウォール」チェックボックスはオフにしといたほうが良いかも
+OS
++ISOイメージの選択(ISOが格納できるファイルシステムは->[[Proxmox VE#g52994f9]])



** 仮想マシンの初期設定(お好みで) [#c5d91448]
+apt install vim tmux clamav iftop iotop qemu-guest-agent ntp ssh gkrellm tmux
+ntpの設定
 sudo vim /etc/ntp.conf
+lxde化
 sudo apt install lxde



** Windows10 [#p3d113ec]


*** 仮想マシン [#j71c4183]
-HDDはSATAを選択
-HDDが認識されなかった時は、仮想マシンごと作り直す。


*** Windows Guest Agent, VirtIO [#g3ab1277]
+Windows10
--参考サイト:
++[[ダウンロードサイト(ProxMox):https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers]]
---以下から落とす
----Using the ISO~
You can download the [[latest stable:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso]]
++ ViirtIO serial
+++ デバイス・マネージャー
+++ 他のデイバイス
+++ PCIシンプル通信コントローラー
+++ ダブルククリック
+++ 「コンピューターを参照して...」
+++ d:\vioserial\w10\adm64
+++ 次へ
++ その他
--- 種類
---- guest-agent
---- NetKVM
---- viostor
---- vioscsi
---- qxldod
---- Balloon
--- インストール
++++ デバイスマネージャ
++++ 操作
++++ 「レガシー...追加」
++++ 「一覧から選択...」
++++ 「全てのデバイス...」
++++ 「ディスク使用」
++++ 「参照」
++++ DVDから適宜選択
+Windows 2008 Server
++I had a similar problem and I fixed it with old virtio driver version 137.~
You can find old version of virtio here:~
[[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/]]
++ [Control Panel]->[Device Manager]->Add device(Legacy)
--- 64bit
 vioscsi\2k8\amd64\vioscsi
--- 32bit
 vioscsi\2k8\x86\vioscsi
++ guest-agent のインストール
--- d:\guest-agent\qemu-ga-x86_64.msi




* バックアップとリストア [#v399b62d]



** バックアップ [#g0f851ce]
+「データセンター」 -> ホスト -> 仮想マシン -> バックアップを選択
+「今すぐバックアップ」を押す
+バックアップ先やモードを選択
+「バックアップ」ボタンを押す



** cephのバックアップ [#uc4f3f74]
-参考サイト[[Ceph RBD Mirroring:https://pve.proxmox.com/wiki/Ceph_RBD_Mirroring]]



** ストレージ・レプリケーション [#q4bb1efa]
-対応ファイルシステムはzfsのみ。。。




** リストア [#c7874e3a]
+「データセンター」 -> ホスト -> 仮想マシン -> バックアップを選択
+リストアするイメージを選択 -> 「リストア」ボタンを押す
+ターゲットのストレージを選択して「リストア」ボタンを押す




* vMotion的な(マイグレート) [#c9645451]
-仮想マシンを右クリック -> 「マイグレート」
-マイグレート先を選択




* WOL(参考) [#z420377d]
-参考サイト : [[ProxmoxでのWOL(Wake On Lan)起動で個人的につまずいたところ個人メモ(Ragy Note):https://ragy.work/?p=27]]
+BIOS(UEFI)で設定しておくこと。
+proxmox側での設定
++ ProxMoxサーバへrootでログイン
++ 以下のコマンドでネットワーク・アダプタを確認
 ip addr show
++ 自分の場合のNIC名は「enp2s0」
++ ethtoolのインストール
 apt install ethtool
++ 対応状況の確認
 ethtool enp2s0
++ Wake-on: のあとの文字を確認
--- Wake-on: dなら次へ
--- Wake-on: gならWOLの設定はできてる
++ ethtoolでWOLを設定
 ethtool -s enp2s0 wol g
++ 元に戻ってしまうので自動で設定
 crontab -e
--- 以下を追加
 @reboot /usr/sbin/ethtool -s enp2s0 wol g
++ ProxMox サーバへWOL用のIPを登録(マックアドレスは例)
 pvenode config set -wakeonlan 12:34:56:78:90:ab



** ASROCK マザーボードのUEFI設定 [#v0456f7d]
-[[参考サイト:https://mimimopu.com/asrock-mb-wol/]]
-[アドバンスド] > [ACPI Configurarion(ACPI設定)]
-- [PCIE Devices Power On(PCIEデバイス電源オン)]:有効




* VMwareからの移行 [#q4fea201]
-[[参考サイト:https://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE]]


** 移行手順 [#m621ae71]
+ VMwareの仮想マシンをシャットダウンする
+ 「エクスポート」を選択(イメージは不要)
+ 一旦PCへファイルを落とす
+ ProxMox VEのホストへファイル転送(自分はSCPで送りこみました)
+ ProxMox VEのホストで以下のコマンドを実行
-- qm importovf (仮想マシンNo) (ovfファイルpath) (ストレージ)
 sudo qm importovf 200 /tmp/exported-vm.ovf cephPool



** CentOS 6 [#pb2f1e77]
+ネットワークカードの追加
+eth0 -> eth1へ変更
++ CentOS6(ネットワークマネージャーを使用しない場合)
+++ cd /etc/sysconfig/network-scripts/
+++ cp ifcfg-eth0 ifcfg-eth1
+++ vi ifcfg-eth1
 DEVICE=eth1
 #HWADDR=00:0C:29:FD:61:33
 NAME="System eth1"
+qemu-guest-agent のインストール
 apt install qemu-guest-agent


** CentOS 7 [#ke1201ab]
+起動エラーの回復
++エラー内容
 Starting Dracut Emergency Shell...
 Warning: /dev/centos/root does not exist
 Warning: /dev/centos/swap does not exist
 Warning: /dev/mapper/centos-root does not exist
 
 Generating "/run/initramfs/rdsosreport.txt"
 
 
 Entering emergency mode. Exit the shell to continue.
 Type "journalctl" to view system logs.
 You might want to save "/run/initramfs/rdsosreport.txt" to USB stick or /boot
 after mounting them and attach it to a bug report.
 
 
 dracut:/
--このエラー、本当に調べるのに時間かかった。。。6時間位調べてようやくわかりました。。。
--結論:HDDをIDEに変更する
--手順
+++ import先(proxmox)の対象のバーチャル・マシンを開く
+++ ハードウェア
+++ ハードディスクを1回「デタッチ」する
+++ 再度ハードディスクをダブルクリックしてIDEとして実装する
+++ 通常通りバーチャル・マシンを起動する
+fstabからネットワークドライブを一時的にコメントアウトする
+Network Manager の設定
 nmtui
-参考:起動エラーの確認コマンド
 journalctl -xb
-- Page up down でスクロールできる



** VMWareへの移行 [#l7977bda]
-[[参考サイト:https://edywerder.ch/proxmox-to-vmware/]]




* ctrl + alt + f1 などの押し方 [#k9d082bf]



** 「モニタ」機能を使う方法 [#wb0fb754]
-[[参考サイト:https://pve.proxmox.com/wiki/Troubleshooting#Switch_novnc_KVM_console]]
+ProxMoxのコンソールで対象の仮想マシンを開く
+「モニタ」を選択(コンソールではない)
+ 以下のコマンド(例)を入力、送信
 sendkey ctrl-alt-f1



** noVNCの左側にある四角の中にAが書いてあるボタン [#je88a235]
+ 例) Ctrl + Alt + F1
-- Ctrl と Alt を押し反転させる
-- 「F1」を押す




* USB [#p1802fde]



** 参考サイト [#ccc13628]
+[[https://pve.proxmox.com/wiki/USB_Devices_in_Virtual_Machines]]


** 設定 [#o15920d6]
+ ProxMox VEへSSH
+ USB一覧の取得
 lsusb
-- 注目するのは以下のID(例)
--- Bus 001 Device 037: ID &color(red,){0511:083f}; N'Able (DataBook) Technologies, Inc. PXW3U4
+ 追加したい仮想マシンの番号を指定し以下のコマンドを実行して追加
-- sudo qm set (仮想マシンのID) -usb(USB番号任意) host=(上記USBのID)
-- 例)
 sudo qm set 804 -usb0 host=0511:083f
-追加されたUSBはWeb consoleからも見る事が可能



* Zabbix [#nf6e045b]



** 設定 [#cdfab4be]


*** ProxMox側 [#m792ad52]
+APIトークンの作成
++ 「データセンター」->「アクセス制限」->「APIトークン」
++ 「追加」
++ 「トークンID」:任意のIDを指定 例としてtokenName
++ 以下2つを無くさないようにメモる
--- トークンID : 例) root@pam!tokenName
--- シークレット:例) abcde123-123a-123a-123a-1234567890ab


*** Zabbix6側 [#c993e3b5]
+ 「設定」->「ホスト」
+ 右上「ホストの作成」
+ 「ホスト」タブ
|ホスト名|適当に|
|表示名|適当に|
|テンプレート|Proxmox VE by HTTP|
|グループ|適当に選択|
|インターフェース|エージェント, IP or DNS名, ポート:10050|
+ 「マクロ」(以下は例)
|マクロ|値|h
|{$PVE.TOKEN.ID}|root@pam!tokenName|
|{$PVE.TOKEN.SECRET}|abcde123-123a-123a-123a-1234567890ab|
+ テスト
++ 「設定」->「ホスト」->「名前」:サーバ名 ->「アイテム」
   -> 「Proxmox: API service status」
++ 一番下「テスト」ボタン
++ 一番下「値の取得とテスト」ボタン
++ 結果に「200」が帰れば成功




* その他 [#uc7b917a]



** ロックの解除方法 [#f33452bd]
-ホストで以下を実行
 sudo qm unlock <VM ID>
-- 例) sudo qm unlock 110



** 仮想マシン一覧の表示方法 [#af1fb03b]
-「データセンター」->「検索」から一覧が見える



** ProxMox Webタブを複数開いた状態でブラウザを起動した時の認証 [#a1c2c646]
+ どこかのタブで1回認証する
+ 隣のタブでももう一度認証する
+ 再度、元のタブに戻る
+ 上記2つ以外のタブを再読み込みする



** クラスター内のホストのIPアドレスを変更しようとして失敗した話 [#gd6e1519]


*** 前提 [#xbb05c88]
+IPを変更しようとしたホスト名をAとする。
+その他のホスト名をBとする。


*** やってしまった事と現象 [#r0bfdcb2]
+ホストAのIPを変更したらホストB経由で確認したクラスター内で×が付きクラスターから閉めされてしまった
+ホストAのIPを戻してもホストB経由で確認したクラスター内で復帰しなかった


*** ホストAをクラスタへ再参画させる [#m42841ab]
- 参考サイト:[[Cluster Manager(Ceph,英語):https://docs.ceph.com/en/latest/rados/configuration/network-config-ref/]]
-- [Remove a Cluster Node]を参照
+ 再参画準備
++ 上記 Remove a Cluster Node のコマンド
+++ sudo pvecm nodes
+++ sudo pvecm delnode (Name)
---- 例) sudo pvecm delnode hp4
+++ sudo systemctl stop pve-cluster
+++ sudo systemctl stop corosync
+++ sudo pmxcfs -l
+++ sudo rm /etc/pve/corosync.conf
+++ sudo rm -r /etc/corosync/*
+++ sudo killall pmxcfs
+++ sudo systemctl start pve-cluster
+++ sudo pvecm delnode oldnode
+++ sudo pvecm expected 1
+++ sudo rm /var/lib/corosync/*
++ その他(再参画するホスト上で実行)
+++ sudo cp -fr /etc/pve/nodes /etc/pve/nodes.bak
+++ sudo rm -fr /etc/pve/nodes
+ あとは普通に再参画



** 仮想マシンが重たい現象について [#v1dd6e0b]
- 自分はMoose File Systemと併用してるので、Moose File SystemとCephの負荷を~
合わせたものが重たい時に仮想マシンが重たくなる。



** ** ファイルサーバ機能(ceph pool) [#b3c61605]


** どうやってファイルサーバ機能を実現するか [#md5e5e85]
- LVMだと思ってたら、ext4でも普通にオンラインで容量の追加、削減ができた。
-- -> 仮想マシン場でかつext4で実現する。
- あとはNFSとSMBのどっちにするか。。。
-- 以下で普通に実装できたけど、ファイルサーバ機能としては、Moose File Systemが優れてるので、~
cephでは構築しない事にした。
-- Linux からはNFS
-- Windows からは SMB



** swap(スワップ)の使用率がやたらと多い [#seeae9e5]
+以下のファイルを編集
 sudo vim /etc/sysctl.conf
+以下を追加
 vm.swappiness = 10
+反映
 sudo sysctl -p



** Win11 [#pe3c60ac]
- 問題無く動いた



** SPICE(画面共有) [#zce278dd]


*** noVNCで画面が更新されない場合 [#ze2eb0be]
+ noVNCを使っても「ハードウェア」の「ディスプレイ」を「SPICE(qxl)」へ変更する。



** Snapshotが消せない,スナップショット, [#u1921b41]
-対象の仮想マシンがあるホストへログイン
 sudo qm delsnapshot 100 BeforeEashRSA -force




* 調査完了 [#t08ae2e3]



** Moose File System との共存 [#t17ee4ba]
-可能




* 個人メモ [#m12d43a9]



** VM migration [#t016d119]
+ 基本設定
++ ホスト
++ 仮想マシン
-- 項目
+++ [[openldap#l7ae19bd]]


 
** LANケーブル、タグ付け [#o9049017]



**Cephチューニング [#ndc0e41d]
-[[Logging and Debugging(ceph):https://docs.ceph.com/en/latest/rados/troubleshooting/log-and-debug/]]
-[[Cephのチューニング REPORT DOCUMENTATION BUG#(SUSE):https://documentation.suse.com/ja-jp/ses/6/html/ses-all/tuning-ceph.html]]




* (おまけ) テスト環境PCについて [#b781d728]



** HP ProDesk 400 G2.5 Small Form Factor Business PC [#bf578a6a]


***BIOS(UEFI) 設定 [#hfaf0808]
- F10
-変更箇所
++ストレージ
--- 起動順序
---- UEFI USB DVD を一番上へ
---- F10 で終了
++ セキュリティ
+++ システムのセキュリティ
---- 仮想化技術(VTx/Vtd) -> 有効
---- F10で終了
+++ 安全なブートの構成
---- 安全なブート -> 無効
---- 高速ブート -> 無効
++ 電源
+++ ハードウェア・パワー・マネージメント
---- S5ウェイク オンLAN -> 有効
++ カスタム
--- 電源投入時オプション
---- POSTメッセージ -> 有効
---- 電源コード抜き差し後 -> オン

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS