2010/10/17

Windows XP HomeからLinux(CentOS)へ業務環境の移行(3)

下地は完成したから、次は苦悶のwineを入れる。
まずは、rpmforgeからwine本体を適宜導入する。
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum install -y wine cabextract

定番のwinetricksを取得する。
wget http://www.kegel.com/wine/winetricks

winetricksの詳しい情報はこちらを参照。

Windows XPからFontsをコピーし、フォントキャッシュを更新する。(ライセンス的に黒い気がする...)
fc-cache


それでは、MS Office 2000 Personal をインストールに取りかかる。
といっても、入れるのはExcelとWordだけ。
インストールする際、事前にOLEAUT32.DLLをコピーする。これを忘れるとエラーで中断される。
cp インストールメディア/SYSTEM/OLEAUT32.DLL ~/.wine/drive_c/windows/system32

準備が整ったので、セットアップを実行する。
wine インストールメディア/SETUP.EXE

Font設定や依存ライブラリ等が正しく構成されていると、見慣れた画面が表示される。



尚、Excelのマクロにはdcom98が必要になるため、別途winetricksから入れる。
winetricks dcom98
導入されるrpcrt4は、他PGへの影響が多大なのでExcel.exeのみの利用として設定する。

Windows XP HomeからLinux(CentOS)へ業務環境の移行(2)

まずは、CentOS 5.5をインストールする。
[ 構築対象PCのスペック ]
CPU Phenom II X4 945
MEM DDR3 PC3-12800 1GB x2
MB 880GMH-LE/USB3
HDD1 WD5000AAKS-R ( 500GB )
HDD2 0S02600 ( 500GB )
我ながらツッコミどころ満載な構成だが、金銭コスト優先(約¥36K)ながらRAIDでHDD破損を担保したつもり。
RAIDは、FakeRAIDではなくソフトウェアRAIDで構築。
CentOSの追加パッケージは、Desktop ( Gnome )のみ。
他はデフォルト。

方針としては、Windowsの使用感を損なわせないことを念頭においた。
参考WEBサイト:


そんな訳で、各種テーマは下記を選定した。
Vista icon theme
XPLuna
Windowze Professional 1.0

適用前適用後

何とも如何わしい雰囲気だ。
アイコンは、本来ならGomeXPなんぞが適しているのだろうけど、CentOSでは素直に使えなかった。
仕方なくvista風にした。
突き詰めるなら、XP Transformation Packを入れると良さそう。

Windows XP HomeからLinux(CentOS)へ業務環境の移行(1)

Windows XP Home を業務利用していたクライアントのPCがウイルス感染したり、物理破損で使い物にならなくなった。
そこでクライアントのPCをAMD系自作機でCentOS仕様に移行してみた。
ちなみに、クライアントのIT知識レベルは高くなく、オフィスは従業員5人程度の小規模な個人事務所。
そして、以前より...

ブラウザ= IE 1:Firefox 9
メーラー= Outlook  0:Thunderbird 10
オフィスソフト= MS Office 6: OpenOffice 4

の比率でOSSを可能な限り利用するよう促していた。
地盤は整っていたから、一般的なクライアントに対する業務利用への投入よりは違和感が少ないと思いたい。

[ 移行条件 ]
  • MS Officeが利用したい。Excelにマクロは必須
  • マクロに依存しない業務は、OOOを使ってもよい
  • ブラウザは、IE必須の業務が停止したため、Firefoxのみでよい
  • AutoCADが必須
  • 可能なら、弥生会計も移行したい

ハードルは高いが、作図業務の生じる個人事務所での一般的なモデルとしては良さそうなので軌跡を公開する。

※色々とソフトウェアライセンスやPCのサービスレベル等の問題はあるが...気にしないことにした。

2010/10/02

CentOS5でOpenVZ(5)

OpenVZでGlusterFS(Fuse)は鬼門なのか、インストール時と同様にバックアップでもハマった。
単純にvzdumpでdumpすると、fuse領域を頑張ってdumpしようとするらしくて、
必ずエラーが発生して異常終了する。
エラーを回避するには、fuseプロセスを停止させるしかないようだった。
とはいえ、バックアッププロセスの前後で停止・起動させていては、数分間もサービスが停止状態してしまう。
そこで、hook-script.plを利用することにした。
実装したい動作は、dump処理中に発生するVEサスペンド・レジュームに連動してfuseプロセスを操作する。
しかし、スクリプトで扱えるイベントが微妙でキャッチしたいレジューム時の処理は提供されていなかった。
仕方ないので、パッチを作成した。

vzdump-1.2-4.noarch.rpm
/usr/share/perl5/5.8.8/PVE/VZDump.pm
----------------------
893a894
> $self->run_hook_script ('post-restart', $task, $logfd);
918a920
> $self->run_hook_script ('post-restart', $task, $logfd);
994a997
> $self->run_hook_script ('post-restart', $task, $logfd);
997a1001
> $self->run_hook_script ('post-restart', $task, $logfd);

パッチ適用後は、適宜hook-script.plを編集する。
21c21,22
< $phase eq 'pre-restart') { --- > $phase eq 'pre-restart' ||
> $phase eq 'post-restart') {
後は、好きなように記述すればいい。

以上

CentOS5でOpenVZ(4)

OpenVZ導入した方々が割とよく遭遇しているCan't Allocate Memory Errorに直面した。
原因調査に、
cat /proc/user_beancounters
を実施すると、やはりKMEMSIZEに大量のfailcntが発生していた。
当座の対応として総メモリ値の10%を割り当てるため、
 vzctl set $veid --kemesize ( privvmpages値 / 10 ) --save
を実行した。
ついでに、最低保証メモリ値に総メモリ値の50%を割り当てるため、
 vzctl set $veid --vmguarpage ( privvmpages値 / 2 ) --save
を実行した。

とはいえ、せっかくowpで運用コンソールを構築しておきながら、
メモリ割り当てやインストール毎に上記コマンドを実行するのはナンセンス。
そんな訳で、owpのパッチを作成。

owp ( 1.5 )
/app/models/virtual_server.rb
97a98
-------------
 vzctl_set("--vmguarpage #{memory * 1024 / 4 / 2} --kmemsize #{memory * 1024 / 4 / 10} --save") if memory_changed?

-------------