読者です 読者をやめる 読者になる 読者になる

CPU/コア数を変更した時のsar

CentOS6

環境;
CentOS 6.x


sarで次のようなエラーが出る事がある。

$ sar
システム動作情報ファイルの形式が正しくありません: /var/log/sa/sa12

これは、CPU数が変わった場合にも発生する。例えば、仮想マシンの仮想CPU/コア数を変更した場合。

このままでは使えないので、このファイルを削除する。
なお、/var/log/sa/* は日毎のファイルなので、翌日以降は問題ない。同日の統計を取りたい場合の処置。

# rm /var/log/sa/sa12

サービスを再起動

# /etc/init.d/sysstat restart

これ以降の統計情報は正常に閲覧できるようになる。

HDDからSSDへ移行したメモ

Windows ハードウェア

家のPCの1台について、この年末年始を使ってHDD→SSDへ移行したのでメモ。

ディスクを移行した目的は、
 ・CrystalDiskInfo でHDDのステータスに注意が出てる
 ・容量が不足しそうな気配
といったところ。

ステータスは以下の状態。

f:id:savakan:20170122142130p:plain


単純にHDD→HDDへコピーして付け替えるだけでも良かったが、SSDも手頃になってきた事もあり、まだ3年くらいはしっかり使うのでSSDへ。

が、残念ながらマザーボードが古めで、SATA2にしか対応していないため、SSDを全力で使えないかもしれない事を覚悟の上で。

SSD/HDDの調達

CrucialやCFDを狙ってたけど、少しケチってTranscend(TS128GSSD370S)。

マザーがSATA2なので、高性能は諦めてコストパフォーマンスを優先。

SSDは、サンワダイレクト楽天市場店にて、5,680円(クーポン利用)で購入。

HDDは、WD(WD20EZRZ)をPC工房にて、6,980円で購入。

いずれも、2016年末に購入した価格。

f:id:savakan:20170103141514j:plain

環境

移行前後の環境は以下の通り。

OS:Windows 7 SP1

移行前の構成:1台目:C/Eドライブ、2台目:Fドライブ
HDD:HITACH / HDS721010CLA332(1TB, SATA300, 7200rpm)
   WD / WD5000AAKS(500GB, SATA300, 7200rpm)

移行後の構成:SSDにCドライブ
SSDTranscend / TS128GSSD370S(128GB, SATA600, MLC
HDD:WD / WD20EZRZ(2TB, SATA600, 5400rpm)

事前準備

PCのSATAに新しいHDDを接続して、Windows上で新しいHDDをフォーマット。

EドライブとFドライブのデータを、新しいHDDへコピー。

この時、いらないデータは捨てる。

Cドライブの容量が150GBあったので、128GB(実効容量:119GB)に収まるよう、ディスクの管理にて100GBへ縮小。

縮小できない場合は、HDD領域の後ろの方にファイルが存在するので、「Auslogics Disk Defrag Free」などを使って原因となっているファイルを探す。

自分の場合、「システムの保護」のファイルがデフラグしても移動されず存在していたようなので、復元に利用される最大使用量を減らしたところ、目的の縮小領域を確保できた。

システムドライブの移行

作業の邪魔になるので、データをコピーした新しいHDDをいったん取り外し。

SSDSATAへ取り付けて、PCを起動。

Windowsのディスクの管理から、SSDが認識した事を確認して、MBRで初期化(ファイルシステムのフォーマットはしない)。

TranscendのWebサイトから、SSDの管理ツール「SSD Scope」を入手してインストール。

SSD Scope」を起動し、SSDファームウェアの更新がないかチェック(更新は無かった)。

「EaseUS Todo Backup Home 10.0」をインストールし、メニューから「システムクローン」を選択。

※システムクローンは、Free版でもHome評価版でも可能。

ソースのドライブとして、「*.\ C:\」となっている事を確認。

ターゲットに新しく繋いだSSDを選択する。

SSDに最適化」と「セクタバイセクタクローン」にチェックを入れる。

クローンは1時間かからないぐらいで終了。

f:id:savakan:20170122143318p:plain


SSDで起動

PCの電源を落として、SATAに繋いであるシステムドライブをHDD→SSDへ交換。

SSDだけ繋いだ状態(データ用HDDは繋がない)で起動させる。

Windows7が起動し、ドライバがインストールされ、再起動を要求されるので、再起動する。

再起動後、アプリケーションの起動などを行い、簡単に動作を確認する。

ディスクの管理にて、SSDの未使用領域を利用するよう、Cドライブの領域を拡張する。

PCの電源を落とし、データ用の新しいHDDを接続して起動する。

HDD/SSD以外の構成は同じのため、Windowsの再アクティベーションは発生しない。


AHCIモードへ変更

IDEモードで使っていたので、Windows7にてレジストリを変更。

「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci」にて、「Start」キーの値を0へ変更。

OSを再起動して、BIOSにてIDE→AHCIへ変更。

Windwos7起動後に、ドライバが自動的にインストールされ、再起動を促されるので、再び再起動して完了。


ベンチマーク

ベンチマーク結果は、300MB/s 手前。

IDEモードよりAHCIモードの方が、高パフォーマンス。

IDEモード
f:id:savakan:20170122143709p:plain


・AHCIモード
f:id:savakan:20170122143723p:plain


SSD的にはもっと性能が出る?かもしれないが、今回使っているマザーボードは古いもので、SATA3のポートが無く、SATA2のポートしかない。

たぶん、これがボトルネック。SATA3ポートなら、もう少し良い結果になるかも。


OSの起動も早くなり、以前の環境より良くなったので、とりあえず目的は達成。

vCSAログイン時のエラー(telemetry-ui)

VMware ブラウザ

【環境】
vCSA 6.0u2a
Windows10 + Firefox 51

上記の環境にて、vCSAへログインすると、次のようなエラーが出た。

内部なエラーが発生しました - Unable to load resource module from /vsphere-client/telemetry-ui/locales/telemetry-ui-en_US.swf。
このエラーによって発生した問題をクリアするために、クライアントを再ロードすることをお勧めします。
vSphere Web Client を再ロードするには、「はい」をクリックしてください?

f:id:savakan:20170108154515p:plain


「エラースタック」のリンクをクリックすると、次のように表示される。

Error: Unable to load resource module from /vsphere-client/telemetry-ui/locales/telemetry-ui-en_US.swf
	at MethodInfo-666()
	at flash.events::EventDispatcher/dispatchEvent()
	at ModuleInfoProxy/moduleEventHandler()
	at flash.events::EventDispatcher/dispatchEvent()
	at ModuleInfo/errorHandler()

f:id:savakan:20170108154522p:plain


「はい」を押すとリロードされるが、同じエラーが出る。
「いいえ」を押すと、次のエラーが出る。一部が「en_US→ja_JP」になったもの。

f:id:savakan:20170108154526p:plain

f:id:savakan:20170108154530p:plain


ここで「いいえ」を押すと、vCSAへログインして普通に操作は可能。
(実際には、何か問題があるかもしれない)

原因は、ブラウザのアドオンの uBlock Origin が有効になっていたこと。

このサイトでは、広告ブロックを無効にすることで、上記のエラーが出なくなった。

Windows で busybox を使う

Windows シェル

Windowsgrep/cut/uniq などを手軽に使いたかったので、busybox 使ったメモ。

インストーラではなく実行ファイルのみなので、レジストリも汚さない。


入手先
https://frippery.org/busybox/

busybox.exe」のダウンロードリンクがある。

ダウンロード後、念のため VirusTotal でチェック。

VirusTotal でチェック時に、ハッシュ値も確認する。

自分が入手時は以下のもの。
The latest executable is 419,840 bytes in size. Its sha256sum is:

44493dc69c1f435fe07e47b8fab5602391941cb798eb40d369c7cd47fb82cfba


なお、WindowsPowerShell 4.0以降(Windows 8.1 / 2012 R2以降)なら、次のようにハッシュ値を計算できる。

PS > Get-FileHash .\busybox.exe -Algorithm SHA256


◆使用例

PowerShellまたはコマンドプロンプトにて、以下のようにする。

PS> busybox ls -a
DOS> busybox ls -a


これだと grep を多段にする時なんかに面倒なので、busybox を省略できるようにしたい。

busybox のコマンドのハードリンクを任意のフォルダに作成する。

例えば、E:\test-busybox にコマンド群を展開する場合。

PS> .\busybox --install E:\test-busybox

上記のフォルダ内では、busybox を省略してコマンドを実行できる。

PS E:\test-busybox> ls -a


PowerShellの場合、パイプでgrepやcutを使う場合、下記のようにするとエラーになる。

PS E:\test-busybox> cat access_log | grep -i error
grep : 用語 'grep' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:18
+ cat access_log | grep -i error
+                  ~~~~
    + CategoryInfo          : ObjectNotFound: (grep:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Suggestion [3,General]: コマンド grep は見つかりませんでしたが、現在の場所に存在します。Windows PowerShell は、既定では、現在の場所からコマンドを読み込みません。このコマンドを信頼する場合は、".\grep" と入力してください。詳細については、"get-help about_Command_Precedence" と入力してヘルプを参照してください。

メッセージの通り、PowerShellの場合、パイプ以降では .\ を指定する必要がある。

PS E:\test-busybox> cat access_log | .\grep -i error
PS E:\test-busybox> cat access_log | .\grep -i error | .\cut -f 1-5

一方、DOSプロントの場合は、.\ を指定する必要はない。

DOS E:\test-busybox> cat access_log | grep -i error


また、busybox-w32 では、コマンドラインワイルドカードを使用できない。

公式ドキュメントに記載されている。
https://github.com/rmyorston/busybox-w32/blob/master/README.md

Wildcard expansion is disabled by default, though it can be turned on at
compile time. This only affects command line arguments to the binary:
the BusyBox shell has full support for wildcards.

createuser 時にロールの属性設定をする方法

CentOS6 CentOS7 PostgreSQL

CnetOS のベースリポジトリにあるPostgreSQLのバージョンによって、createuser の動作が異なる件。

知人に何回も聞かれるのでメモ。

CnetOS 6.x(PostgreSQL 8.4)の場合

$ createuser -U postgres test1
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

上記のように、ユーザ作成時に一部の属性を対話形式で設定できる。

CnetOS 7.x(PostgreSQL 9.2)の場合

$ createuser -U postgres test1

PostgreSQL 9.2 以降は、何も聞いてこない。すべて n で答えたものとなる。

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 test1     |                                                | {}


従来のように、createuser 時に対話式で一部の設定を行いたい場合は、「--interactive」オプションを付ける。

$ createuser -U postgres --interactive test2
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 test1     |                                                | {}
 test2     | Create DB                                      | {}


「--interactive」オプションは、9.2 以降のドキュメントに記載されている。

PostgreSQL 9.2
https://www.postgresql.jp/document/9.2/html/app-createuser.html


リリースノートを探したら、9.2のやつに記載されていた。
https://www.postgresql.jp/document/9.2/html/release-9-2.html

createuserは、デフォルトではオプション設定のためのプロンプトを表示しないようになりました。(Peter Eisentraut)

以前と同じ動作をさせるには--interactiveを使ってください。

--interactiveが指定されていなければ、dropuserはユーザ名のプロンプトを表示しないようにしました。(Peter Eisentraut)

PDFファイルがClamAVで検知された件の覚書

CentOS5 CentOS6 CentOS7 セキュリティ

2016/9/16~9/17頃から、ClamAVでサーバ上のPDFをスキャンすると、

「Pdf.Exploit.CVE_2016_4207-1」として判定されるようになった。


シグネチャはこの辺。
Signatures Published daily - 22213 | ClamAV | virusdb


1週間程度待っても、ClamAVの定義更新でどうにかなるものでもなかったので、手動でホワイトリストへ追加した。

# echo "Pdf.Exploit.CVE_2016_4207-1" >> /var/lib/clamav/local.ign2

テキスト形式なので、不要になったらファイルの該当行を削除する。

VDP で PBM error occurred during...Connection refused が出る

VMware

ESXi6 Update2+VCSA 6update2+VDP 6.1.2 の組み合わせにて、バックアップ時に次のようなエラーが発生する。
(他の組み合わせでは未確認)

PBM error occurred during PostProcessReconfigureSpec: Connection refused


全く同じエラーメッセージではないが、類似例を発見。
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2118557

上記KBのケースでは、「Profile-Driven Storage service」を有効にすれば良いらしい。


現在の稼働状況を確認。

vcsa:~ # service vmware-sps status
VMware vSphere Profile-Driven Storage Service is not running.

動作していなかったので起動させる。

vcsa:~ # service vmware-sps start
Starting VMware vSphere Profile-Driven Storage Service...
Waiting for VMware vSphere Profile-Driven Storage Service....................
running: PID:32169

稼働状況を確認。

vcsa:~ # service vmware-sps status
VMware vSphere Profile-Driven Storage Service is running: PID:32169, Wrapper:STARTED, Java:STARTED

これでVDPのエラーは出なくなった。