リブートしたら、proxmoxの/etc/pveの中身がない。
proxmoxの各種設定は、/etc/pveの設定ファイルで行われる。通常は、ブラウザ経由の設定でOKだが、ホスト名の変更やクラスタの追加などを操作するため、直接、/etc/pveのファイルを操作した。
再起動するまでは、正しいそうに動作していたが、再起動したら、ブラウザの操作ができませんでした。
現象
ブラウザ上の操作画面のURLが接続できなかった。そのため、sshでログインして、/etc/pveの設定ファイルを確認しようとしたら、まったく、データがありませんでした。
調査
proxmoxのフォーラムで、/etc/pve がemptyの記事を見つけ、pmxcfsが怪しそうなことが分かりました。
https://forum.proxmox.com/tags/etcpve/
https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)
root@pve:/var/lib/pve-cluster# systemctl status pve-cluster.service
● pve-cluster.service - The Proxmox VE cluster filesystem
Loaded: loaded (/lib/systemd/system/pve-cluster.service; enabled; vendor pres
Active: failed (Result: exit-code) since Wed 2022-02-09 11:30:42 JST; 14s ago
Process: 5346 ExecStart=/usr/bin/pmxcfs (code=exited, status=255/EXCEPTION)
Feb 09 11:30:42 pve systemd[1]: pve-cluster.service: Service RestartSec=100ms ex
Feb 09 11:30:42 pve systemd[1]: pve-cluster.service: Scheduled restart job, rest
Feb 09 11:30:42 pve systemd[1]: Stopped The Proxmox VE cluster filesystem.
Feb 09 11:30:42 pve systemd[1]: pve-cluster.service: Start request repeated too
Feb 09 11:30:42 pve systemd[1]: pve-cluster.service: Failed with result 'exit-co
Feb 09 11:30:42 pve systemd[1]: Failed to start The Proxmox VE cluster filesyste
lines 1-11/11 (END)
真因
proxmoxの設定ファイルは、sqlite3のデータベースで管理しており、"pmxcfs"コマンドで、fuseファイルシステムとして、/etc/pveにマウントする形式でした。
今回は、sqlite3のデータベースで、"lxc"が重複しており、起動に失敗して、/etc/pveにマウントされなかったことです。
root@pve:/var/lib/pve-cluster# pmxcfs
[database] crit: found entry with duplicate name 'lxc' - A:(inode = 0x00000000000D7C4F, parent = 0x00000000000D7A60, v./mtime = 0xD7C4F/0x1644155700) vs. B:(inode = 0x00000000000D7CA4, parent = 0x00000000000D7A60, v./mtime = 0xD7CA4/0x1644155760)
[database] crit: DB load failed
[main] crit: memdb_open failed - unable to open database '/var/lib/pve-cluster/config.db'
[main] notice: exit proxmox configuration filesystem (-1)
暫定対処
sqlite3で、① dump出力を作成し、② エディタで重複している"lxc"を1行削除、③データベースを再構築して起動しました。
root@pve:/var/lib/pve-cluster# sqlite3 config.db <- dump出力
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite> .output dump_config.sql
sqlite> .dump
sqlite> .quit
root@pve:/var/lib/pve-cluster# vi dump_config.sql <- 重複行を削除
root@pve:/var/lib/pve-cluster# mv config.db config.db_o <- config.dbの名前を変更
root@pve:/var/lib/pve-cluster# touch config.db <- 空のconfig.dbを作成
root@pve:/var/lib/pve-cluster# sqlite3 config.db <- データベースの再構築
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite> .read dump_config.sql
sqlite> .quit
root@pve:/var/lib/pve-cluster# pmxcfs <- エラーがなくなりました。
ブラウザからもproxmoxの操作が可能になりましたが、データの不整合があるので、正しく治していく予定です。
proxmoxの設定ファイルが無くなったときは、びっくりした。
以上