13:改造

12の問題点を受け下記のように改造しました。
途中経過ですが,3月22日にバッテリーを交換してから今日(4月2日)太陽電池からの充電で動いており、一度も補充電が入っておりません。もっとも1日中雨の日が無かったのですが,それでも交換前は1日1回は補充電が入っていたので、いかにバッテリーが弱っていた事か!!
1:バッテリーのパラを止め直列のみにする。その際バッテリーはなるべく大容量にする。経済的な兼ね合い、在庫の具合などで韓国製のATLASのPT200にしました。本当は210H52にしたかったのですが在庫が無かった。ちなみにPT200は210H52の電流容量が若干少ないものの様です。(値段は同じなのに??)ちなみに色々調べ、240H52と言うもっと電流容量のある物もあるが、値段が5千円位高い。
2:電池をそれぞれ独立に充電する。直列にした電池のアンバランス解消の為(何でこんなにアンバランスになるのか、様子を見ている)。各電池の充電開始電圧は11.8Vで開始し、13.8Vで止めるように設定しました。現在は(2011年4月2日)アンバランスになっておりません。(まだ一度も補充電が入っていません)
2011/4/4追記 今日初めて補充電源が入りました。
プラス側マイナス側の電池の補充電の開始電圧は同じにしてあるのですが、今日はマイナス側の補充電が入ってもプラス側は1時間半後にやっと入りました。このせいで、現在プラス側とマイナス側がアンバランスになっております。原因は良くわかりませんが、補充電が働いたほうは電圧が上がりますので、OPアンプにかかる電圧が上昇するのが原因かも(定電圧ICを入れて電圧を安定してもいいのですが)。開始電圧の調整が非常にクリチカルなので別々に充電しないほうがいいかも?もう少し様子を見てみます。
3:補充電電流計は止め充電表示ランプにする。充電電流は判っているのでメーターの必要は無い。
4:使用電流用の検出抵抗はマイナス側に入れる。12:問題点参照
5:OPアンプ用の昇圧は止める。12:問題点参照
6:絶縁タイプのDCDCコンバーターは非絶縁タイプ1個にする(私はわざわざ買い変えるのも無いので絶縁タイプを使っている)。つもりでしたが電圧計の最小桁が不安定のため別々にしてある。
改造後の回路図はここをして下さい。ここを クリックして下さい。

 

この下にもう一つの電池がある

 

 

 

SW電源がかなり熱を持つので、CPU用のヒートシンクを付けてある。
右側の黄色と緑のSWは太陽電池を直列にする手動SW。
見にくいが電圧計の左にそれぞれの充電表示LEDがついている。
表示が消えているデジタル・メータは使用していない。

 

SBDには銅版を付け放熱している。又、銅版の間にはガラスプリント基板を接着剤で
付け、強度の補強をしている。

 

 

SW電源の過電流保護の為に約11A強になる様に、R10と並列に300Ω抵抗を入れる

 

 

 

裏側に入れた抵抗

 

 

 

8Pinのソケットは今後作る予定の太陽電池を自動で直列に切り替える回路用の物
カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

12:問題点

稼働後約4年になりましたが、問題点も出てきました。

電池の寿命が悪い。私は以前ハイエースのバン(ディーゼル)を改造して乗っていましたが、その時バッテリーを寒冷地仕様の130F1に変更し10年間交換をしていません。10年目に交換しましたが、それも寿命では無く、10年も使っていたからと交換した次第です。この原因は憶測ですが、大容量のバッテリーにした事により、始動時の大電流が相対的に減り、寿命が長くなったと思っています。つまり寿命に影響の出る、過放電、過充電がなくなっのでは無いかと思います。それ故この無停電電源を作るときわざわざ良くない電池の並列で電流容量を上げる事にしたのですが、結果それが災いしているのかも???
津波の直前(たまたま)に各電池の電圧を調べると直列にしたマイナス側の電池(2個共)が1V以上プラス側の電池より低い電圧で、極端にアンバランスでした。この原因は解かりません。1V以上のアンバランスがあると充電開始電圧を約20V(1年くらい前に変更していた。容量が無くなってくると電池電圧は急激に下がるので、少々低めに設定しても、すぐにその電圧に達するからと、浅はかな考え)にしていたので、このアンバランスを考えるとマイナス側の電池は9V位になっていたと思われます。それで並列を止めプラス側につないでいた2個の電池を直列にした1日運用したら、一方の電池が1V位低い電圧でした。この原因はある時バッテリー液の点検を忘れ、下限値を下回り、セルの金属上部がすれすれで液面上に出ている状態だった電池です。
又,比重系で調べると液が灰色がかっていました(4個とも)。どうも鉛の細かな粒の様ですが??
インターネットを調べると鉛電池は過放電が寿命に対し影響が大きい様で、開放電圧が11.5Vで残存容量が零になるようです。これが原因で寿命を極端に縮めていたようです。早速、補充電開始電圧を23.4Vにしました(電池は交換した、13:改造予定参照)。この電圧は開放電圧が11.86Vで残存が30%とあるので負荷を繋げたままなら(今は約4A)11.7V(X2)位と勝手に決めつけた設定値です。
又,回路を見直した結果、不必要な事をやっていたので列記します。
1:制御回路の電圧を上げる必要は無い。バッテリーの電圧を分圧して測定するので電池の電圧が入力には来ないので、OPアンプの電圧はバッテリーの電圧でかまわない。
2:電流測定用の検出抵抗はマイナス側に入れれば、わざわざ絶縁タイプのDCDCコンバータは必要ない。

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

10.装置写真・全体回路図(訂正2007/5/6)

全回路図は:AllCircuit クリックして下さい。(お詫び、デジタル電流計入力の+−が入れ替わっておりました。訂正2007/5/6)

 

全体写真1 高さはキャスターを入れて102cm、横58cm

 

 

 

 

 

 

 

 

 

 

 

 

全景2(前扉オープン)SW電源は前面パネルにある2mm厚のアルミ板に放熱を兼ね、
取り付け(モジュールに3mmのタップが3箇所あったのでそれを利用)下の電池には電解液点検のため頭が入る位のスペースが必要表示部(AC100Vより充電中、太陽電池も各1A強充電している

入出力部(左の4本は太陽電池から、その右の4本は24V出力用(この上はサーキットブレーカ)、

黒いケーブルはSW電源用100V

 

 

SW電源附近(電源上の白い部品とその左の部品は逆流防止用SBDr(ショットキーバリヤダイオード)。
アルミのLアングルに白い液体ゴムを塗り、絶縁)

 

 

制御回路付近(右のダイオードはSW電源用SBDr、アルミのアングルとは放熱ゴムで絶縁)

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

9.電流,電圧表示装置

表示機として下記のものを取り付けました。
A.太陽電池充電電流計:これは逆流防止ダイオード(効率の為にショットキーバリア・ダイオード。モジュール側には入っていないとの事です。)を入れた後にアナログの5Aの電流計を各モジュールに入れてあります。(各モジュールから2mmのケーブルで引き込み、ここまでは太陽電池工事に含まれる)
B.電池電圧用デジタル電圧計
C.使用電流用デジタル電流計
D.補充電用デジタル電流計
注意:デジタル計は3個ありますが、電流計の2個はアナログ・グランドが電池のマイナスと共通になりませんので、絶縁型のDCDCコンバーターで電源供給が必要です。電圧計と電流計を共通の電源から供給するとデジタル計が確実に昇天します。
失敗談:電流計の2つのアナログ・グランドを共通にして同じ絶縁型のDCDCコンバーターから電源供給をしたところ、最小桁が安定しませんでした。この桁は10mA台ですので気にしなくてもいいのですが、デジタルだと表示がくるくる変化するのは気持ちがよくないので、現在は3つすべてのデジタル計にそれぞれ独立したDCDCコンバーターから電源を供給しております。
デジタルメーター:秋月電子のPM-129Bで電源5V、アナログ・グランドと電源のマイナス側が共通のもので200mVフルスケールの物を電圧計は10MΩと10KΩ(正確には1/1000になっていませんが誤差範囲ないです)で分圧し200Vフルスケールで使用。電流計は回路に40mΩ(1W)のチップ抵抗を4パラにし10mΩにしてそこに200mVフルスールのデジタル計をつけました。この抵抗は秋月電子で購入しましたが、現在は売っていないようです。
DCDCコンバーター:イーター電機のOEJ05SC1224で絶縁型の5V,0.3Aです。電圧計は電池マイナスとアナログ・グランドが共通なので、絶縁型でなくてもいいのですが、部品を共通化する意味で同一品を使用しました。非絶縁タイプの同容量は100円くらい安かったと思いますし、消費電流が実測で60mA強ですので、3端子レギュレータで5Vを作れば安上がりです。(効率は悪いけど)
制御回路用電源:測定する電池よりも高い電圧が必要なので、MC34063を使用し、電池から32Vを作っています。
制御回路図:circuitして下さい。(PDFファイルですのでアクロバッド・リーダーが必要です。

中央のSWモジュールの右にあるチョークコイルは表示が安定しなかった時に入れた物で無くてもよい。外すのが面倒なのでそのままにしている。














カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

8.過充電保護回路

過充電保護回路は補充電回路と同じ考え方で、OPアンプを使用し、ヒステリシスを持たせ、リレーをカットするように考えました。カットする電圧を28.8Vにし、リレーを再接続する電圧を26.5Vに設定し回路を作ってありますが、この1ヶ月ほどの経過を見ますと、一度も過充電状態に近くなることが無いので途中でやめています。(リレーを入れていない)。もちろんこれは私の現在の状態であり、消費電流と太陽光発電の充電電流によって必要になります。
回路図:ここをクリックして下さい。

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

7.SW電源の改造

まず電源の電圧を上げますが、これは簡単で電源に1個だけ付いている半固定VRを右に回していきますが、このとき負荷を付けていないと電圧が出てこない仕様になっています。又あまり電圧をあげると電源の過電圧保護回路が働いて出力をカットしますので、その少し手前でとめることにします。28V弱であれば、補充電の回路のほうで充電をカットしますのであまり気にする必要は無いかもしれませんが、この回路が働かなかったことを考えあまり高くしないほうがいい。製作時点ではこのSW電源を入れっぱなしにし、出力側もつないでおいて電源の出力電圧を24V位にして動作させていましたが(こうすると制御回路はいらない )、
A.電池が24Vを下回ると常に補充電してしまう(太陽が出てきて充電すれば補充電の必要が無いときの方が多いし、SW電源のAC100Vの消費電流分効率が悪い)
B.電池が24Vより高いときは電池からSW電源に電流が流れ効率が悪いのと、これがSW電源にどう作用するか不明で、気持ちが悪い。 これはダイオードを入れれば解決しますし、現在も入れてありますので理由にならないかな?
ので現在は今のように制御回路を入れてあります。
過電流を少なくする改造は写真をご覧下さい

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

6.補充電源の設計

長期間天気が悪い時 のために補充電を作ります。補充電開始電圧を21.5Vとし、終了電圧を27.5V 29.1V(2009年9月22日変更。回路図中の補充電源部分、フィードバック抵抗120kΩは100KΩに変更)(太陽電池があるので満充電にする必要は無い )としてOPアンプを使用したコンパレーターにヒステリシスを持たせて作りました。(コンパレーターの出力をトライアック使用のゼロクロススイッチ(ソリッド・ステート・リレー(SSR)キット 25A(20A)タイプ )で電源のAC100Vを入れるようにし、出力側はダイオード(やはり効率を考えてショットキーバリア)を入れてあります。電源としてはイーター電機のBSE24SA-U(今は絶品)を使用しました。このSW電源は24V出力で7Aの電源です。これを選んだのは安いからで定価で¥5,570で千石電商で約¥5,000でした。ただしこの電源の改造が必要です。このままですと21.5VになるとSW電源の過電流保護が働きその設定値まで電流が流れてしまいます。規格によるとこの状態を1分以上使用するなとありますので(私は試しにこの状態を1時間位やりましたが壊れませんでしたがお勧め出来ません)過電流保護の部分を改造し7A付近にする必要があります。又、電源電圧が24Vですので27.5Vまで充電してくれません。この改造は次項をご覧ください。
蛇足:設計時の消費電流は3.5Aでしたので7Aにしましたが、現在は6Aほど消費しており都合1Aしか充電に回りません。今思うともう少し大きな電源にしておけばよかったと思っております。ただし14Aの電源は高いのでこのシリーズの BSE12SA-U(12V,14A)を2個直列に使用したほうが安くなります。
写真・回路図は 9.電流,電圧表示装置をご参照ください。

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

5.太陽電池は実際どれ位発電するの?(2007/6/23日再追記)

定量的に報告するのはあまり意味が無いと思われますので(実は照度計を持っていない)、感覚で申し訳ありませんが、雨の時はよっぽど明るくない限り、ほぼ充電電流が0A で、曇りでも明るい曇りなら半分くらい充電します。天気がいいときの朝8時で1A(このモジュールが西向きに取り付けてあるので、朝は効率が悪いはずです。)3.5Aの充電になる時間は天気がいい日に観測が出来ていませんので、後日報告しますが、多分12時くらいかなー?。今10分ごとの電池電圧を無休止でデーターを取っていますので後日報告します。
追記:4月20から5月9日朝まで観測出来ている限り3A以上になっておりません。3Aなるのは1時位。多分電池の電圧によって変化すると思われるので、3.5Aになったのが何Vだったかは覚えておりません。今、電池電圧は10分おきに無休止でデーターを取っていますが、太陽電池からの電流は取っておりませんので、時間が取れたときにデーターロガーを製作し報告したいと思います。やっとデーターロガーを作りました。ここをクリックしてください
追記6/4:天気がいいと10時半でも3.8Aになりました。重要な発見太陽電池の公称最大出力動作電圧付近(このパネルは26.4V)を越えると同じ光量でも充電電流が下がってきます。試しに太陽電池を直列にすると合計の充電電流は増えます(実例:電圧が27Vの時パラレルだと1.5A位(1枚で)だったものが2枚直列にすると4A(2枚で)まで電流が増えました)。電池の電圧が充電によって上がってくると太陽電池の発電電力が下がるみたいです。この電圧が何ボルトなのか少しテストして報告します。ちなみに電池電圧が25.5Vの時は直列にしても電流は増えず(この時ははパネル1枚で1A位だった。並列でも直列でも1Aと言う事は並列の方が良い)。わたしの場合は太陽電池からショットキー・バリア・ダイオードをとうしているのでその電圧降下も考慮すると多分26v付近と思われる。又、この特性の為に過充電にならないと考えられます。
同日夕方直列で2.9A X2 =5.8A(電池電圧26.0V)並列で1.8A X 4=7.2A(電池電圧26.4V)となり、並列の方が効率がいい。どうも電池電圧だけではないみたい。電池電圧が上がっているのは充電電流が増えたため。
追記6/23:この日の午後、並列で1.5A X 4 =6A (26.5V)、直列で4.1A X 2 =8.1A (27.6V)でした。どうもこの辺が境界みたい。

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

11.コンピュータ側電源の製作

24Vから各電圧を作りますが、−5Vは現在のマザーボードではほとんど使用していません。私の手持ちのマザーボードを(5枚ほど)全部調べましたが、全部未使用でしたので、-5vは作らない事にしました。
WEBサーバーに使用しているコンピュータの各電圧の最大電流を調べた所、12V:3A, 5V:3.5A, 3.3V:4A, -12V:0.2A, 5VSB(スタンバイ電圧):1A でしたので12V,5V,3.3Vには秋月電子のSW電源モジュールのDC−DCコンバータ HRD12003E(出力5〜24V可変)(5Vからになっていますが、モジュール内部の安定化用ツェナーダーオードは2.5Vですので3.3Vを作れます)を各電圧に2個使用し電圧調整抵抗を入れ各電圧を作り、5VSBは秋月電子で売っていた5V2A(HRD05002E)を使用しましたが、今は売っていないみたい。-12VはMC34063を使用し作りました。
本来使用しているSW電源モジュールは並列運転が出来ませんが、強引に並列にしています。最初は各モジュールに0.1Ω位の抵抗を入れて各モジュールのばらつきを抑えるつもりでしたが、どうも無くてもよさそうなので現在は入れていません。本当は各モジュールに電流計を入れ調べればいいのですが、まだやっていません。
回路図はここをクリックして下さい。(PDFファイルです)
この回路図はマザーボードをつながないと−12Vが出力に出てきますので、マザーボードをつながない時に出力が出ないようにするには10KΩの抵抗を5VSBの出力からPS ON(16ピン)に入れて下さい。
この写真はサンバ・サーバーの写真、WEBサーバーは別にある。又、5Vのモジューは3個付いている。(3個パラがうまく働くか不明、現在の5Vの最大電流は6A以下。又、HighPointのRocketRAID 2300をRaid5で使用していますが、必ずスタッガード・ドライブ・スピンアップ機能をONにして使用の事。これを使用しないと、5V・12Vの最大時の電流容量が不足する。ラックマウント型のケースは自作。

カテゴリー: 太陽電池を使った無停電電源(サーバー用)奮闘記 | コメントする

36:カーネルイメージからサブホストを直接起動する

サーバー制作

KVMを使用して普通にサブホストを作ると、領域1(イメージファイルやLVM)の中にさらに領域2を作って(複数の領域を作れるようにする為?、ルートやスワップなどの複数の領域為?)しまいます。画像0
こ こで一番問題になるのはバックアップの方法です。私はbaculaを使用し、サブホストをバックアップしていますが、これでは完全なバックアップになりま せん。というのもこのバックアップは領域1の中の領域2をバックアップしているので、baculaでリストアしてもそのリストアしたデーター(領域2)を さらに領域1の中に入れ込まなければ、完全なサブホストのバックアップになりません。私はその方法が解りません(ddコマンドで作れそうですが??)
なので、一度作成したサブホストを、カーネルイメージから直接起動する様に変更しました。これでbaculaでリストアされたサブホストもそのままリストアできます。(領域の中に入れ込まなくてもよい)
只,わたしはKVMを正式に勉強したわけではなく、又、真剣にググった訳でもないので、かなりいい加減です(でもちゃんと動いています)
その過程の中で疑問に思ったのが、
仮 想マシンマネージャーで、サブホストを指定し、開くアイコンをクリックし、開いたウィンドウの電球アイコンをクリックし、左ペインの Boot Options をクリックし、さらに右ペインで、Direct kernel boot をクリックすると展開された中に Kernel path:、initrd path:、kernel auguments: があり、最初の二つには Browse アイコンがあります。画面1。そこで、それらを選べますが、
ここで問題!この時点での作業はメインのOSでしているので、ブラウズ出来るのはメインの中だけです(サブホストはマウントされてない)でもサブホストの指定だよなー?
と言う訳で実験
1:メインのホストとサブホストに同じバージョンを入れる
例:Kernel path: /boot/vmlinuz-2.6.32-642.el6.x86_64
Initrd path: /boot/initramfs-2.6.32-642.el6.x86_64.img
Kernel arguments: root=/dev/vda
ブートOK
2:メインのホストにはあるがサブホストにはない場合
例:Kernel path: /boot/vmlinuz-2.6.32-573.el6.x86_64
Initrd path: /boot/initramfs-2.6.32-573.el6.x86_64.img
Kernel arguments: root=/dev/vda
途中で could not load /lib/modules/2.6.32-573.el6.x86_64/modules.dep: No such file or directory
 と表示されログイン出来る状態だが、まともに動かない筈。どういう事か、最初のブートではメインの/bootを見て,途中からサブホストの/libを見にいくが、サブホストにはないのでエラーとなっている。
3:サブホストにはあるがメインのホストにはない場合
例:Kernel path: /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64
Initrd path: /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
Kernel arguments: root=/dev/vda
ブートすらしない。
 Errot starting domain: unable to set user and group to ‘107:107’ on ‘/boot/vmlinuz-2.6.32-642.1.1.el6.x86_64’: No such directory
 と表示されブートが止まる。
と言う訳でここから作業
まず、サブホストのvdaに指定される領域(私はLVM)をddコマンドでバックアップ
# dd if=vdaに指定されている領域 of=バックアップを保存する領域
サブホストのルート領域をマウントしますが、前に触れたようにこの中にさらに領域を作っているので
# lesetup -f
で使える最初のloop番号を調べる。何もしていなければloop0の筈
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
# ls /dev/mapper
で展開された領域を調べる、loop0p1やloop0p2 等がある筈、私はここにはルート領域のみしか作っておらず、スワップや他の領域は別のlvでマウントしているので、あるのはloop0p1だけ
# mount /dev/mapper/loop0p1 /test1 ← 私はテスト用にこのdirectoryを作っている
これでサブホストのルート領域が/test1にマウントされた。私は/bootは別の領域にせず全部ここに入っている。
次にサブホストに使っている領域をフォーマット(私はLVM)
# mkfs.ext4 /dev/VG名/LV名
これで、このままではサブホストを二度と起動で出来ない!
# mount /dev/VG名/LV名 /test2 ← 私はテスト用にこのdirectoryを作っている
# cd /test1
# cp -pr ./ /test2
これで、しばらくするとコピーが終わるので、後処理
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
これで準備が出来たので、前項の 1:メインのホストとサブホストに同じバージョンを入れる と同じように(もちろんカーネルバージョン等は自分にあわせる)Direct kernel boot を設定する。
尚、Kernel arguments: にvda になっているのは、DISK1 に VirtIOを指定している為、ここがIDEだと違うはず、/etc/libvirt/qemu/サブホストxml を見れば指定が解る。
これでサブホストを起動すれば問題ない。
2016ー 6ー16追記:大嘘を言っていました。このままでは起動できません。と言うのもフォーマットをするとディスクのUUIDが変わり、grub.confにあ るブートdiskが古いUUIDのままだからです。と言う訳でgrub.confを修正しますが、この際UUIDでなく、ディスク(vda)の指定にしま す。と言うのもサブホストのルートのディスクはVirtIOを使用し、素直に作ると、必ずvda になるからです。ですので再度マウントし、編集します。
# mount /dev/VG名/LV名 /test2
# gedit /test2/boot/grub/grub.conf

抜粋
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-642.1.1.el6.x86_64)
 	root (hd0,0)
	kernel /boot/vmlinuz-2.6.32-642.1.1.el6.x86_64 ro 本当はここから次のタイトルの前までは1行
    root=UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda ここを変更する
        rd_NO_LUKS LANG=ja_JP.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16
        crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet
        enforcing=0 	initrd /boot/initramfs-2.6.32-642.1.1.el6.x86_64.img
title CentOS (2.6.32-573.26.1.el6.x86_64)
以下省略、注:root=の指定はカーネルのアップデートがあると、他にもあるので全部変更する

もう一つ変更しなくてはならないファイルがある。fstabです。
どうも私はディスクの指定にUUIDを使うのに抵抗がある。確かにsda1等を使うと、認識の順序が変更になると問題がありますが、LVMを使えばこの問題はなくなりますし、
今回の様に仮想化もvdaを使えばいいのです。ともかくfstabを修正
# gedit /test2/etc/fstab

抜粋
UUID=467a31a2-d8b5-4b05-8878-0d65d0015be4/dev/vda     /	ext4    defaults        1 1 UUID=...... を /dev/vda に修正
tmpfs                   /dev/shm                tmpfs   defaults        0 0

そして保存後、umountし、起動すればよい

PS:/etc/libvirt/qemu にある .xmlファイルの抜粋を参考の為に下記に示します。
普通にサブホストを作った時

  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <boot dev='hd'/>
   </os>

カーネルイメージからサブホストを直接起動する設定の時

  <os>
     <type arch='x86_64' machine='rhel6.5.0'>hvm</type>
     <kernel>/boot/vmlinuz-2.6.32-642.el6.x86_64</kernel>
     <initrd>/boot/initramfs-2.6.32-642.el6.x86_64.img</initrd>
     <cmdline>root=/dev/vda</cmdline>
     <boot dev='hd'/>
   </os>

この様にDirect kernel bootで指定した”kernel, initrd, kernel argumenyts(cmdline)”が追加されています。
2016ー6ー16追記:今日sambaの入っているサブホストを同じようにやっている時、cp -pr ./ /test2 の所で、

cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/scripts': サポートされていない操作です
cp: preserving permissions for `/test2/./var/lib/samba/sysvol/kinryokai.net/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/USER': サポートされていない操作です
以下省略

とエラーがいっぱい出ていた。エラーの所を見ると
# ls -la /test1/var/lib/samba/sysvol/

合計 20
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 .
drwxr-xr-x. 7 root    root    4096  1月 30 22:18 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 kinryokai.net

ちょっと見にくいが + が付いているのでACLが効いているので、エラーになった見たい。でも /test1 と /test2 を比較しても、パーミッション、オーナー、ファイルの数やサイズを見てもまったく同じであるので正しくコピーされている見たい。それでこのサブホストを起動しWindowsからファイルサーバー(アクティブディレクトリーを使用したsamba)をテストしたが問題ない見たい。
でもコピーされた方にはACLの設定がなされてない見たい。これは問題、色々ググったらcpはACLに対応していないそう。Starと言うのが対応しているみたいなので、近日この項に結果を書きます。
2016-6-19追記:色々トライしてみましたが、getfact, setfaclを使用するのが簡単だった
まずはオリジナルのvdaをマウントするが、例によって領域の中に領域なので
# losetup /dev/loop0 ddでバックアップされた領域
# kpartx -a /dev/loop0
でloop0に本来ルート領域をマウントする(画像0の領域2)
# ls /dev/mapper/
でマッパーを見るとloop0p1等がある。
# mount /dev/mapper/loop0p1 /test1
で/test1にマウントして、
# cd /test1/var/lib/samba/
で該当個所に移動
# getfacl -R * > /root/acl-backup
でACLをバックアップ。
次に使用しているvdaをマウントしますが、ACLの設定をするので
# mount -o rw,acl /dev/VG名/LV名 /test2 私はLVMを使用
でオプションで ACLなどを指定し/test2にマウント
# cd /test2/var/lib/samba/
で該当個所に移動
# setfacl –restore=/root/acl-backup
でリストアする。
ACLの確認
# ls -la sysvol/kinryokai.net/

合計 32
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 .
drwxr-xr-x+ 3 root    root    4096 12月 17 17:52 2015 ..
drwxrwx---+ 4 3000017 3000000 4096  6月 27 20:50 2014 Policies
drwxrwx---+ 2 3000017 3000000 4096  6月 27 20:50 2014 scripts

他のディレクトリーも調べたがOKだった。
あと、ACLの設定をしたので fstabを変更する(変更しないで起動するとACLの設定が反映されていなかった)
でも、領域の中に領域を作った(つまりオリジナル)vdaで起動すると fstab にはACLの設定が無いが、ACLの設定は反映している!
何で!!ともかくfstabの変更
# gedit /test2/etc/fstab

抜粋
/dev/vda   /          ext4       defaults,acl   0 0 ← ,aclを追記

保存後、後始末
# cd
# umount /test1
# umount /test2
# kpartx -d /dev/loop0
# losetup -d /dev/loop0
でもって、起動すればOK

2016-6-21追記(下記の –acl は見にくいのですがハイフォンが二つ付いています<- -acl>)
色々調べると、現在は tarも–aclオプションがあり対応しているようですので、その方法
サブホストの領域をフォーマットするまでは同じですが、これをマウントする所からが違います。
# mount -o rw,acl /dev/VG名/LV名 /test2
でオプションで ACLなどを指定し/test2にマウントしておきます。
次に/test1にマウントしたルート領域を tarで保存します。
# cd /test1
# tar –acls -cvf /tmp/subroot.tar ./
この様に –aclsオプションを付けて保存します。私はこのtarファイルが7GB弱になりましたので、保存場所(この場合は/tmp)の空き容量に注意してください。
これを復元します。
# cd /test2
# tar -xvf /tmp/subroot.tar -C ./
これで/test2に割り当てた領域にサブホストのルートがacl付きで保存されます

カテゴリー: 省エネサーバー製作(CentOS 6) | コメントする