インフラエンジニアXの備忘

とある企業のシステム部門のインフラエンジニアです。忘れっぽい自分のメモ書きとしてこのブログを使用します。

dfコマンドとduコマンドの容量があわない。

いろいろ検証用の環境を整理していたときに
dhコマンドとduコマンドの結果容量の差異がすごかった。

dfの値

[root@hogehoge /]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/XXXXX            200G   50G  151G  25% /


50Gを利用しているように見えるのだがduで見てみると


duの値

[root@hogehoge /]# du -sh ./
5.9G    ./


6G弱で差が44Gもあった。


google先生で調べてみたところ、ものすごく合致したページがあり非常に助かりました。
ありがとうございました。

doruby.kbmj.com

ページ内部の記載を引用させていただくと

どうやら削除しても削除しきれていないファイルデータがあるらしい。


とのこと。

# ls -al /proc/*/fd/* | grep deleted


記載されているコマンドを実施してみたところ、納得。
以前、postgresが応答しなくなって、強制的にプロセス終了したなと。
ログをみたらpostgresのプロセスがわんさかありました。。

なので、postgresを再起動してみたら…

[root@hogehoge /]# df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/XXXXX            200G  5.9G  195G   3% /


のどの小骨が取れた。気持ちいい。


15時間でわかるCentOS集中講座

15時間でわかるCentOS集中講座



Proxmoxクラスタ環境化でのホストアップデート

Proxmox3.1などについては、結構バグがあってクリティカルなものが多い。
例えば、起動後幾日か立つと、バックアップジョブが動かなくなったとか
マイグレーションしようとすると

starting worker failed: unable to parse worker 
upid 'UPID:hoge1:00027C09:1204EBD50:55554F28:vzmigrate:1001:root@pam:' (500)


みたいなエラーがでてマイグレートできない…とか
VMを停止しようとするとできないとか、起動しようとするとできないとか…。
Forumで確認をしてみたんですが、bugらしいです。


forum.proxmox.com



で、今後の運用に問題がでそうな感じなので、アップデートを検証。


一応事前にvirtualboxを利用して、確認してみると
proxmox1(cluster-master),proxmox2(cluster-member)という環境でクラスターを組んでいる環境において
proxmox1→proxmox2というアップデート手順でも、
proxmox2→proxmox1というアップデート手順でも、
pve-managerのvarsionが3.1と3.4というあべこべな状態でもcluster環境については影響はなし。
各親ノードで動いているコンテナには特に影響はなし。(当たり前か)
オンラインマイグレートやWebGUIでの作業についても問題なし。


手順はwikiに記載のある通りに実施して

1.各CTおよびVMを確実に停止。
2./etc/apt/source.listを更新する。
  
  deb http://ftp.jp.debian.org/debian wheezy main contrib
  
  # PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use
  deb http://download.proxmox.com/debian wheezy pve-no-subscription
  
  # security updates
  deb http://security.debian.org/ wheezy/updates main contrib

3./etc/apt/source.list.d/pve-environmentがある場合はコメントアウトしておく。

  #deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

4.apt-get updateを実行する。
5.apt-get checkを実行し、依存関係をチェックする。
6.apt-get -s dist-upgrade > dist-upgrade.logでアップデートされる内容を確認
7.pveversion -v > pveversion.log で念のためアップデート前を確認
8.pvecm status > pvestatus.log で念のためアップデート前を確認
9.apt-get dist-upgradeを実施
10.再起動


一度目実行時にわざとCTを動作したものがある状態で実施したらdist-upgrade中にエラーとなった。
なので、完全に終了させておいたほうがいい。


一応、この手順でおこなった場合については問題なかった。
(環境が違うと結果も違う場合があるかもなので、検証は絶対に行うほうがよい。)


3.4ではnoVNCでのコンソール表示や、起動メニューの変更などもあるし
zfsへの対応であったりというアップデートもあるので、やっておいて問題はないかと思う。
またVENOMのパッチもこの間リポジトリにあげたというものを見た気がするので
いいタイミングでアップデートしておいたほうがいい。


しかし、親サーバーをアップデートする際に、仮想マシンがたくさんあると結構厳しいですね。
とくにVMについてはオンラインマイグレートもできないし…。


Mastering Proxmox

Mastering Proxmox