LinuxServer
Proxmox
参考サイト †
最初に †
概要 †
- Proxmox VE という仮想化プラットフォームがある事を知ったので
ちょっと構築してみようかと思いました〜(^^)
- 検証時のVersion -> 7.3
- 古いPCを有効活用できる技術です。
特徴 †
- フリー
- vCenterありのVMWareの機能(複数サーバでのHA, クラスタリング、仮想マシンの移動など)が可能
- VMWareでいうvSANのような機能をcephで実現
- GUIあり
- 対応CPUの幅が広い
(Debianのため)
(Intel VT-x機能があれば大抵動く。Celronでも可能)
(VMWareはほぼXEONでしか動かない)
- 既存システムとの共存可能
Install, Download †
Download †
初回アップデート †
- 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
- repository の更新とアップグレード
apt update && apt full-upgrade
最低限のソフトのインストール †
apt install vim ethtool tmux clamav iftop iotop qemu-guest-agent sudo
IPV6 の無効化 †
LDAP参加 †
tmux の設定 †
起動後の初期ユーザー名 †
クラスタの作成 †
- 「データセンター」-> 「クラスタ」(上から4つめ)
- 「クラスタの作成」
- クラスタ名を入力してそのまま作成する。
クラスへの参加(Join) †
既存ホストでの作業 †
- 既存のホストから「データセンター」を選択 -> 「クラスタ」->「Join情報」
- 「Join情報」をコピー
新規ホストでの作業 †
- 「データセンター」を選択 -> 「クラスタ」
- 「クラスタに参加」
- 先程のJoin情報を貼り付け
- rootのパスワードの入力(不要?)
クラスタから削除 †
- ProxMox?ホストのシャットダウン
- 別のホストに ssh でログインして、対象ノードを削除する。
- 以下のディレクトリを削除
- sudo rm -fr /etc/pve/nodes/pve2
ストレージ関連 †
通常(ceph以外) †
新規HDDの追加(thin diskの追加) †
- GPT初期化
- 左ツリーから個別のホストを選択
- ディスクを選択
- 新規に追加したdisk(sdbとかsdc)を選択
- 「GPTでディスクを初期化」ボタンを押す
- LVM-Thinを作成
- 「LVM-Thin」を選択
- 「作成: Thinpool」ボタンを押す
- ディスクを選んで名前を適当に付ける。例) prox01SdbThin?
消す場合 †
- 左ツリーから個別のホストを選択
- ディスクを開く
- 「LVM-Thin」の中の消したい名前を選択
- 右上の「More」を開き「破棄」を選択
分散ファイルストレージ(ceph)を構成 †
概要 †
- とりあえず最低限、3台のPCやサーバが必要
- Thin は無い
インストール †
- 「データセンター」-> 「Ceph」(上から5つめ)をクリック
- 「Cephをインストール」をクリック
- 「Quincyのインストールを開始」をクリック
- 「Do you want to continoue」 と聞かれるので「y」 Enterを入力
- インストールが完了したら「次へ」を押す
設定 †
- 「Public Network IP/CIDR」は選べるのを選んでおく
- 「Cluster Network IP/CIDR」もとりあえず選べるのを選んでおく
- 「Number replicas」と「Minimum replicas」はとりあえず標準のままで「次へ」
- 「完了」ボタンを押す
モニタ †
- 新規 ceph サーバを立てたら登録が必要
OBD †
- ディスクの登録が必要
pool †
- 仮想マシンを保存できるcephのストレージ
- これがないとvMotion的な「マイグレート」もストレージ移動が伴うと思う
- サイズ : レプリカ数(最小3)
- minサイズ : 縮退運転のサイズ(最小2)
状況確認, Status,等 †
- まず一杯になる前兆などの指標
- OSD_NEARFULL : もうそろそろリバランスできなくなりますよ、って警告
- OSD_BACKFILLFULL:既にリバランスができないよ、って警告
- OSD_FULL:クラスタの書き込みが実行できなよ、って警告
- weight関連
仮想マシンの中のディスクが[No Such File or Directory]で消せない †
cephをフルに近くしてめちゃくちゃ遅くなった時 †
- とりあえずモニタサーバを順番に再起動
- 容量を見るのはOSD一覧(cephのサマリでは容量逼迫を検知できない)
- HDDの1つがやたらと遅い可能性もある。
- rewaightの調整
- 以下、チラ裏。。。
- 大きいディスクを消す時、めちゃくちゃ重い。
1時間に1% 位しか進まない。。。
そのおかげで、他のサーバに影響が出ていて、DNSやDHCP, Proxyなどインフラ周りのサーバはもちろん、
Webサーバやデータベースサーバにも影響が出ていてしんどい。。。
日記用のプライベートWordpressにもアクセスできないし、SKKのGoogle IMEも利用できないので、
日本語変換もままならん。。。早く解決しないかなぁ。。。
- 次の日には直りました(^^)
ディスクエラーの消し方 †
リカバリ, リバランスのために仮想マシンが重い, 遅い(ceph, チューニング) †
- 一番効果が高い方法(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 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 osd_memory_target 2000000000
- sudo ceph config set osd osd_backfill_full_ratio 0.3
- ceph tell 'osd.*' injectargs '--osd-max-backfills 1'
- sudo ceph config set osd osd_backfill_scan_max 128
- 使用状況による OSD の重みの設定(自動, reweight)
- sudo ceph osd reweight-by-utilization [threshold] [weight_change_amount] [number_of_OSDs] [--no-increasing]
- 手動(reweight)
ネットワークBonding(Teaming) †
- cephのネットワーク帯域がアップアップで遅いので、Bonding(Teaming)してみます。
(今回はLinuxなので「Bonding」の言葉で統一します)
- 設定手順
- bond0の作成
- 「データセンター」配下からBondingしたいホストを選択
- 「システム」->「ネットワーク」
ネットワークの設定は「設定を適用」ボタンを押すまで反映されないので、
それまで自由にいじれます。戻したい時は「リバート」を選択
- ホストにsshして、以下のファイルをバックアップしておいた方が良いかもしれません。
/etc/network/interfaces
sudo cp /etc/network/interfaces /etc/network/interfaces.bak
- 今の「vmbr0」のIPアドレスをメモしておく
- 今の「vmbr0」を削除
- 「作成」->「Linux Bond」
- 名前:bond0
- IPv4/CIDR : (空白)
- ゲートウェイ : (空白)
- スレーブ:enp0s31f6 enp1s0
- モード : balance-alb
(balance-alb以外を選択する時は、上位スイッチの設定が必要となる時があるので注意すること。
ここの設定を間違えるとホストがネットに繋らなくなる)
- vmbr0の作成
- 「作成」->「Linux Bridge」
- 名前:vmbr0
- IPv4/CIDR : 123.123.123.123/24
- ゲートウェイ : 123.123.123.254
- ブリッジポート : bond0
- 「設定を適用」を押す
このボタンを押す時はサーバの前に居る事を強く推奨。
ネットワークに繋がらなくなるとコンソールでの作業が必要
Cluster network †
CephFS †
- 消し方
- ストレージのアンマウント(データセンターから)
- 各ノードの「Ceph」->「CephFS」からメタバースを停止 -> 破棄
- 以下のコマンドを実行
pveceph fs destroy NAME --remove-storages --remove-pools
ディスク, disk, キャッシュ関連 †
- 参考サイトからの結論
- キャッシュはHDDの場合、Write back
- キャッシュはSSDの場合、Write back(unsafe)
- SSDならSSD エミュレーションはON
- IO ThreadはON
- SCSIコントローラーはVirtio SCSI Single
- Barrier無効化は効果があるがリスク対効果を考えて設定
CentOS6ではエラー †
- ひっかかったのは、SCSIコントローラ
- Virtio SCSI Singleではパニックエラー(panic+0xa7)が起きるため、「LSI 53C895A」とした。
ISOイメージ用のストレージ †
仮想マシンの追加 †
- ProxMox?のWeb管理コンソール、右上「VMを作成」ボタンを押す
(コンテナはceph poolでは作れないので注意)
- 全般
- 「ノード」(ProxMox?のホスト)を選択
- 「VM ID」:適当にダブらない3桁の数字 例) 123
- 「名前」:仮想コンピュータの名前
- 「リソースプール」:空白
- ネットワーク(NIC)の「ファイアウォール」チェックボックスはオフにしといたほうが良いかも
- OS
- ISOイメージの選択(ISOが格納できるファイルシステムは->Proxmox VE#g52994f9)
仮想マシンの初期設定(お好みで) †
- apt install vim tmux clamav iftop iotop qemu-guest-agent ntp
- ntpの設定
sudo vim /etc/ntp.conf
- lxde化
sudo apt install lxde
Windows10 †
仮想マシン †
- HDDはSATAを選択
- HDDが認識されなかった時は、仮想マシンごと作り直す。
Windows Guest Agent, VirtIO †
- Windows10
- Windows 2008 Server
バックアップとリストア †
バックアップ †
- 「データセンター」 -> ホスト -> 仮想マシン -> バックアップを選択
- 「今すぐバックアップ」を押す
- バックアップ先やモードを選択
- 「バックアップ」ボタンを押す
cephのバックアップ †
ストレージ・レプリケーション †
リストア †
- 「データセンター」 -> ホスト -> 仮想マシン -> バックアップを選択
- リストアするイメージを選択 -> 「リストア」ボタンを押す
- ターゲットのストレージを選択して「リストア」ボタンを押す
vMotion的な(マイグレート) †
- 仮想マシンを右クリック -> 「マイグレート」
- マイグレート先を選択
WOL(参考) †
- 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
- ProxMox? サーバへWOL用のIPを登録(マックアドレスは例)
pvenode config set -wakeonlan 12:34:56:78:90:ab
ASROCK マザーボードのUEFI設定 †
- 参考サイト
- [アドバンスド] > [ACPI Configurarion(ACPI設定)]
- [PCIE Devices Power On(PCIEデバイス電源オン)]:有効
VMwareからの移行 †
移行手順 †
- VMwareの仮想マシンをシャットダウンする
- 「エクスポート」を選択(イメージは不要)
- 一旦PCへファイルを落とす
- ProxMox? VEのホストへファイル転送(自分はSCPで送りこみました)
- ProxMox? VEのホストで以下のコマンドを実行
CentOS 6 †
- ネットワークカードの追加
- 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 †
- 起動エラーの回復
- エラー内容
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
VMWareへの移行 †
ctrl + alt + f1 などの押し方 †
「モニタ」機能を使う方法 †
- ProxMox?のコンソールで対象の仮想マシンを開く
- 「モニタ」を選択(コンソールではない)
- 以下のコマンド(例)を入力、送信
sendkey ctrl-alt-f1
noVNCの左側にある四角の中にAが書いてあるボタン †
- 例) Ctrl + Alt + F1
- Ctrl と Alt を押し反転させる
- 「F1」を押す
USB †
参考サイト †
- https://pve.proxmox.com/wiki/USB_Devices_in_Virtual_Machines
設定 †
- ProxMox? VEへSSH
- USB一覧の取得
lsusb
- 注目するのは以下のID(例)
- Bus 001 Device 037: ID 0511:083f N'Able (DataBook?) Technologies, Inc. PXW3U4
- 追加したい仮想マシンの番号を指定し以下のコマンドを実行して追加
- 追加されたUSBはWeb consoleからも見る事が可能
その他 †
ロックの解除方法 †
- ホストで以下を実行
sudo qm unlock <VM ID>
仮想マシン一覧の表示方法 †
調査、設定中 †
Win11(調査中) †
Zabbix(調査中) †
マイクラ・サーバ †
ファイルサーバ機能(ceph pool) †
どうやってファイルサーバ機能を実現するか †
- LVMだと思ってたら、ext4でも普通にオンラインで容量の追加、削減ができた。
- あとはNFSとSMBのどっちにするか。。。
耐障害性 †
ディスクの容量減らし方 †
アラート, Alert関連 †
SPICE(画面共有) †
noVNCで画面が更新されない場合 †
- noVNCを使っても「ハードウェア」の「ディスプレイ」を「SPICE(qxl)」へ変更する。
調査完了 †
Moose File System との共存 †
個人メモ †
VM migration †
- 基本設定
- ホスト
- 仮想マシン
SATA2つ追加 †
backup †
Window managerのlxde化 †
不要となったProxMox?ホストを売る †
LANケーブル、タグ付け †
(おまけ) テスト環境PCについて †
HP ProDesk? 400 G2.5 Small Form Factor Business PC †
BIOS(UEFI) 設定 †
- F10
- 変更箇所
- ストレージ
- 起動順序
- UEFI USB DVD を一番上へ
- F10 で終了
- セキュリティ
- システムのセキュリティ
- 仮想化技術(VTx/Vtd) -> 有効
- F10で終了
- 安全なブートの構成
- 電源
- ハードウェア・パワー・マネージメント
- カスタム
- 電源投入時オプション
- POSTメッセージ -> 有効
- 電源コード抜き差し後 -> オン