Midnightjapan

Tag: VirtualBox

CentOS6.2 on VirtualBox4.1.8 for Windows

by jun on 5月.24, 2012, under Linux

理由はどうあれ、あらたなサーバーシステムを構築するプロジェクトを開始した。

どちらかというとサーバータイプではなく、可搬性にすぐれ、クライアントのよくつかうサーバー環境を節電しながら利用するサーバーを考えた結果、以前から運用試験していたVirtualBoxを使った仮想システムをUSBメモリ上に配置し、HAサーバーを展開するというプロジェクト。

いまさらやっつけ感もあるが、大規模で安定したサーバーを構築するよりも、もっと身近で安価でコンパクトなサーバー環境がほしくなったのわけです。

耐用年数は低いですが、コスパは高い。1度構築するとイメージを複製することで増殖可能。

SOHO的には実用性が非常に高い。

そんなわけでまずはシステムのセットアップからはじめました。

VirtualBox 4 にCentOS6.2をセットアップする際のメモ。

  1. CentOSで自宅サーバー構築:CentOS 6インストールまたははじめての自宅サーバ構築:CentOS6 のインストールを見ながらインストールする。VirtualBoxの設定方法はたびたびまとめているので今回は省略します。
  2. kdumpでエラーが発生しますが、既知のバグなのでインストール時は飛ばします。
  3. インストールとネットワークの設定が終わったら再起動します。
  4. 必要なライブラリをインストール
    [管理者@vbox] # yum install gcc make kernel-devel
  5. カーネルのバージョンをあげたら再起動します。
    [管理者@vbox] # reboot
  6. Guest Additions のインストールを実行。詳細は省略しますが、ほぼ全自動で自動起動を実行してOK。
    [管理者@vbox] # Verifying archive integrity... All good.
    Uncompressing VirtualBox 4.1.8 Guest Additions for Linux.........
    VirtualBox Guest Additions installer
    Removing installed version 4.1.8 of VirtualBox Guest Additions...
    Removing existing VirtualBox DKMS kernel modules           [  OK  ]
    Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
    Building the VirtualBox Guest Additions kernel modules
    Building the main Guest Additions module                   [  OK  ]
    Building the shared folder support module                  [  OK  ]
    Building the OpenGL support module                         [失敗]
    (Look at /var/log/vboxadd-install.log to find out what went wrong)
    Doing non-kernel setup of the Guest Additions              [  OK  ]
    Installing the Window System drivers
    Installing X.Org Server 1.10 modules                       [  OK  ]
    Setting up the Window System to use the Guest Additions    [  OK  ]
    You may need to restart the hal service and the Window System (or just restart
    the guest system) to enable the Guest Additions.
    
    Installing graphics libraries and desktop services componen[  OK  ]
    Press Return to close this window...
  7. OpenGLで失敗するので、パッチをあてます。詳細はhirokan55の日記:CentOS 6.2にVirtualBox Guest Additionsをインストールメモを参照
  8. もう一度Guest Additionsをインストールします。エラーがなければ成功。

実に快適なGUI環境になった。

いままでのCentOSはCUIでGuestAdditionもどうでもいいくらいだったが、非常にすっきりと軽量咲かれたGUIにGuestAdditionをインストールすることで、さらにいい感じに。

次はサーバーシステムを構築していきます。

具体的な内容は非公開になるかもしれませんが、とにかくProject開始です。

    コメントなし :, more...

    VirtualBox v4.1.8アップデート

    by jun on 3月.01, 2012, under Windows

    VirtualBox を3から4にアップデートしました。

    Direcr3Dまで利用するので、下記のような手順で行い正常に動作しました。

    ただし、アップデート後にUSB2.0接続がOFFになるのでシステム終了後設定でUSB接続をONにする必要があります。

    その際に今回のアップデートで仮想の32bit OSのメモリ4GB上限を突破したようなので、割り当てを増やすとより快適になると思います。

    今回の環境ではWindows7-64bit上のVirtualBoxにWindowsXP32bitを稼働させるための環境としていることを前提とします。

    VirtualBox v4.1.8?アップデート手順

    1)ホストからVirtualBox4.1.8アップデータをダウンロード。

    2)ホストからVirtualBox4.1.8アップデータをインストール。

    3)ホストからVirtualBox Extension Packが古いバージョンのままだとアラートがでるので、指示通りダウンロードしてアップデート

    4)ホストからVirtualBoxマネージャーが起動したらゲストOSを起動。(今回は32bit WindowsXP)

    – 以下ゲストOS –

    5)セーフモードで起動。

    6)セーフモードで起動後、コントーロールパネル>プログラムの追加と削除>Oracle VM VirtualBox Guest Addtionをアンインストール。

    7)再起動

    8)セーフモードで起動。

    9)セーフモードで起動後、VirtualBoxのメニューバーから、デバイス>Guest Additionのインストールを選択してインストールを行う。

    10)インストール時にDirect 3D Additionを選択

    11)インストール後にシステム終了(仮想システムを停止状態に)。

    12)ホストからVirtualBoxマネージャーで仮想の設定を行い、メモリの設定やUSBのONなどを設定する。

    13)ゲストOSを起動して正常に動作することを確認。

    ご苦労様でした。利用した感じでは特に問題はなさそうなのでアップデート推奨していきたいと思います。CentOSやUbuntuはこれから試してみます。

    コメントなし :, more...

    USBメモリの耐久性

    by jun on 4月.26, 2011, under Linux, Programing

    可搬性疑似仮想アプライアンスサーバーシステム構想に基づき下記を導入。

    USBメモリの耐久性実験段階に入った。

    運用対象製品「Greenhouse PicoDrive DualX 16GB」

    1枚目:メインとしてExFATにてフォーマット。8GBのイメージを配置し、CentOS5.6-64bit開発サーバーシステムを配置 読み書き頻度高い

    2枚目:上記メインの定時バックアップとしてExFATにてフォーマット。(1日1回)書き込み重視

    開発環境を構築して運用開始3日目。とくに異常は見られない。

    メインからサブへのフルバックアップはVirtualBoxのCloneHD機能を使って複製。定時バージョン管理はスクリーンショットで運用。

    速度に不満は無い。フルバックアップにおよそ10分。スクリーンショットは瞬時に終わる。

    心配なのはそれぞれ非常に熱くなること。

    フラッシュメモリの耐久性はいかに・・・。

    コメントなし :, , more...

    可搬性疑似仮想アプライアンスサーバーシステム構想

    by jun on 4月.23, 2011, under Blog, Linux, MacBook Air

    4月がもうすぐ終わろうとしているが、いまだに放射能の問題や電力不足問題や余震の恐怖。

    システム開発を行う私としては、計画停電は致命的な問題である。

    今後発生する可能性がある消費税の増税に伴う、システムのリビルド等。課題は山積みである。

    これからの不安定な社会を乗り切るためには、システムの海外への移動か可搬性を持たせるなど危険なアイデアを試みる必要があると考えた。

    海外への移設は順次進めている。

    残念ながらこのサーバーは移転しません。団体利用のため移転しません。あしからず。

    構想?「電力を確保する」

    ・ガソリン式の発電機を購入すれば数時間の電力は賄えるが、コストと設置場所を考えると個人向けではない。ましてガソリンを運ぶ携行缶なども購入しておく必要もあり、ガソリンを補完する場所や火事の危険を考慮しないといけないわけです。

    ・無停電電源バッテリーを活用する。しかしこれは活用できなかった。理由は蓄電量がわずかでシステム開発を行えるほど電力はない。

    ・車のダイナモからの電力を使って停電時間中を凌ぐ。これであればガソリンを保管するのが車の中のため安全だ。しかし肝心の電力が問題でダイナモからのノイズと不安定電力の安定化のため、高価なコンバーターが必要となる。これもおしいアイデアであった。

    この結果、いかにノートパソコンの性能がすごいかわかってきた。

    わたしが持っているMacBookAirは3時間余裕で稼働してしまう。

    画面サイズなど考えれば、いままでどおりの開発環境とはいかないが、これを活用しない手はない。

    しかしサーバーとクライアント環境を整えるためには複数台購入し数十万払う必要がある。

    これは現実的ではない。

    そこで、

    構想?MacBookAir内の仮想環境を活用する。

    実際には

    構想?「海外クラウドシステム GoogleApps,AmazonEC2を活用する」などもあったが、どれも面倒で実現は難しかった。

    わたしはマルチプラットフォーム(Mac/Win)のWEBシステムが現在開発中のシステムであるためMac/Winのブラウザチェック、Windows開発環境、Linuxサーバー環境が必要である。

    これを仮想化する。仮想化は各種あるが私は下記に決めた。

    Oracle VirtualBox Ver.4.0.6(無料)

    しかしれだけではMac・Win・Linuxサーバーを乱立する必要があり、MacBookAirでもスペックがきびしい。

    いろいろな仮想化問題も考えないといけないため、今回はVDIファイルをBootcampの使ってMac/Winをどちらのプラットフォームでも利用可能にしてしまえばLinuxサーバーを仮想化するだけで済む。

    よしこれだ。

    BootcampでMac/Winに分割して、これをParallelsDesktop6を使ってMacからBootcamp内のWindowsを起動して利用することも考えたが動作が異常できびしいと判断。

    しかたなくMac/Win環境は切り替えて利用しVirtualBoxでLinux仮想サーバーを構築する際に、USBメモリ内に構築を行う。

    こうすればBootcamp切り替えでも利用することができる。

    ここで考えなければいけないのが、仮想ディスクをUSBメモリに配置する場合にFAT32では4GBの壁を越えることができない。そのためVirtualBoxで固定サイズディスクイメージにすると、4GBを超えた時点でコピーできなくなる。

    可変長で利用してみたところLinuxでは異常に大変であることがわかった。

    CentOS 5.6-64bit 可変長:4GB/実サイズ2.7GBで構築 =>運用1週間で空き容量0になる。

    これを拡張するために、Gpartedを使ってみた。

    残念・・・GPartedはVolumeGroupには対応していない・・Orz

    そこで、大きいサイズの新仮想ディスク8GBで作成し、下記のように既存の4GBで構成したシステムを8GBに移し返してみた。

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    
    // VirtualBoxインストールフォルダーに移動
    C:\Users\mynane>cd c:\Program Files\Oracle\VirtualBox
    
    // VirtualBoxイメージを複製する
    C:\Users\mynane>VBoxManage clonehd [旧仮想ディスク].vdi [上記で作成した新仮想ディスク].vdi --existing
    
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
    
    Clone hard disk created in format 'VDI'. UUID: d12672e3-e555-4f6c-8867-636f163ae816

    ※ VirtualboxのイメージファイルはUUIDで管理されているんため、複製しても利用できない。そのためコマンドを使うが、下記の通りである。
    ・新たにイメージを複製

    VBoxManage clonehd [旧仮想ディスク].vdi [上記で作成した新仮想ディスク].vdi

    ・別のイメージに複製(たとえば容量を増やす場合はこっち)

    VBoxManage clonehd [旧仮想ディスク].vdi [上記で作成した新仮想ディスク].vdi --existing

    これで構築したVDIを複製できるので、USBメモリの中にこれをコピーする。

    しかし!これでも空きが0・・・Orz・・・理由はハードディスクが拡大されても、VolumeGroupは大きくなったわけではない。

    仮想の中のファイルシステムパーティションを拡張しなければいけない。Windows等はGpartedを利用すると便利だが、Linux等で利用されているLVMボリュームには対応していないので、下記のように行う。

    Linux上のVolumeGroupを拡張する

    1. 現在の状態の確認

    # /sbin/fdisk /dev/sda
    このディスクのシリンダ数は 5221 に設定されています。
    間違いではないのですが、1024 を超えているため、以下の場合
    に問題を生じうる事を確認しましょう:
    1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
    2) 別の OS のブートやパーティション作成ソフト
       (例. DOS FDISK, OS/2 FDISK)
    
    コマンド (m でヘルプ): m
    コマンドの動作
       a   ブート可能フラグをつける
       b   bsd ディスクラベルを編集する
       c   dos 互換フラグをつける
       d   領域を削除する
       l   既知の領域タイプをリスト表示する
       m   このメニューを表示する
       n   新たに領域を作成する
       o   新たに空の DOS 領域テーブルを作成する
       p   領域テーブルを表示する
       q   変更を保存せずに終了する
       s   空の Sun ディスクラベルを作成する
       t   領域のシステム ID を変更する
       u   表示/項目ユニットを変更する
       v   領域テーブルを照合する
       w   テーブルをディスクに書き込み、終了する
       x   特別な機能 (エキスパート専用)
    
    コマンド (m でヘルプ): p
    
    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = シリンダ数 of 16065 * 512 = 8225280 bytes
    
    デバイス Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM

    2. /dev/sda3 を作る

    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本領域 (1-4)
    p
    領域番号 (1-4): 3
    最初 シリンダ (2611-5221, default 2611):
    Using default value 2611
    終点 シリンダ または +サイズ または +サイズM または +サイズK (2611-5221, default 5221):
    Using default value 5221

    3. /dev/sda3 の確認

    コマンド (m でヘルプ): p
    
    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = シリンダ数 of 16065 * 512 = 8225280 bytes
    
    デバイス Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    /dev/sda3            2611        5221    20972857+  83  Linux

    4. /dev/sda3 のパーティションタイプを 8e (Linux LVM) に変更する

    コマンド (m でヘルプ): t
    領域番号 (1-4): 3
    16進数コード (L コマンドでコードリスト表示): 8e
    領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました
    
    コマンド (m でヘルプ): p
    
    Disk /dev/sda: 42.9 GB, 42949672960 bytes
    255 heads, 63 sectors/track, 5221 cylinders
    Units = シリンダ数 of 16065 * 512 = 8225280 bytes
    
    デバイス Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        2610    20860402+  8e  Linux LVM
    /dev/sda3            2611        5221    20972857+  8e  Linux LVM

    5. 変更内容を書き込む

    コマンド (m でヘルプ): w
    領域テーブルは交換されました!
    
    ioctl() を呼び出して領域テーブルを再読込みします。
    
    警告: 領域テーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
    カーネルはまだ古いテーブルを使っています。
    新しいテーブルは次回リブート時に使えるようになるでしょう。
    ディスクを同期させます。

    6.再起動する

    # shutdown -r now

    7.PV (Physical Volume) の作成

    # pvcreate /dev/sda3
    Physical volume "/dev/sda3" successfully created

    8.作成した PV を VG (Volume Group) に参加させるためPV確認

    # vgdisplay -v
     --- Volume group ---
     VG Name               VolGroup00
     System ID
     Format                lvm2
    
     (中略)
    
     --- Logical volume ---
     LV Name                /dev/VolGroup00/LogVol00
     VG Name                VolGroup00  
    
     (中略)
    
     --- Logical volume ---
     LV Name                /dev/VolGroup00/LogVol01
     VG Name                VolGroup00 
    
     (中略)
    
     --- Physical volumes ---
     PV Name               /dev/sda2
     PV UUID               JjcZe9-l3Ss-8B5H-mPc9-R76G-XRti-DzOZu3
     PV Status             allocatable
     Total PE / Free PE    636 / 0

    9.VolGroup00 に /dev/sda3 を追加

    vgextend VolGroup00 /dev/sda3
    Volume group "VolGroup00" successfully extended

    10.結果確認

    # vgdisplay -v 
    
     (中略)
    
     --- Physical volumes ---
     PV Name               /dev/sda2
     PV UUID               JjcZe9-l3Ss-8B5H-mPc9-R76G-XRti-DzOZu3
     PV Status             allocatable
     Total PE / Free PE    636 / 0
    
     PV Name               /dev/sda3
     PV UUID               bGR4XI-Nz0Q-XceM-dBor-3XYs-UVJR-tgspv4
     PV Status             allocatable
     Total PE / Free PE    640 / 640 ←これを記録

    11./dev/VolGroup00/LogVol00 に VolGroup00 で未割り当ての 640 PE を追加する

    #lvextend -l +640 /dev/VolGroup00/LogVol00
     Extending logical volume LogVol00 to 37.91 GB
     Logical volume LogVol00 successfully resized

    12./dev/VolGroup00/LogVol00 のファイルシステム (ext3) の容量を拡張する †

    # resize2fs /dev/VolGroup00/LogVol00
    resize2fs 1.39 (29-May-2006)
    Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
    Performing an on-line resize of /dev/VolGroup00/LogVol00 to 9936896 (4k) blocks.
    The filesystem on /dev/VolGroup00/LogVol00 is now 9936896 blocks long.

    これで拡大完了!ちなみに上記の例は

    「CentOS LVMの拡張(VMWare仮想ディスクの拡張)」を参考にさせていただきました。

    これほど面倒くさいので、できるだけ固定で必要最低限足りると思う容量で構築するのがベストでしょう。

    USBメモリ内での運用など今までなら完全否定で危険しかないと思われたものなので

    いまさらUSBメモリの危険性を指摘いただいても困る。

    十分わかっているつもりである。

    そのうえで私は人柱になり、安全許容範囲を模索するつもりである。

    かくして、機材を購入して運用を開始した。

    これは実務と並行するため、記事の更新は二の次にさせていただきます。

    コメントなし :, , , , , , , more...

    

    何かお探しですか?

    以下にキーワードを入力してサイト内検索が可能です:

    Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!