Virtuozzo(Fedora Core 4編)

Virtuozzo(バーチューゾ)はSWsoft社が開発しているOS仮想化ソフトです(ハードウェアの仮想化は行いません)。

2005年12月21日にVirtuozzo for Linux 3.0 RC1が発表され2006年に入って正式リリースされました。
Virtuozzo自体は有償ですがそのオープンソース版のOpenVZにGUI管理ツール(VZMC,VZCC/VZPP)が加わった製品となっています。

Virtuozzo環境上で動作するOSを仮想プライベートサーバ(VPS:Virtual Private Server)と呼びます。
VirtuozzoはOSレベルで仮想化を実現しておりVirtuozzo自体を導入できるOSも現状では限られています。
※OSレベルでの仮想化とはホストOSのカーネルでVPSを動作させ、ホストOSのファイルシステムの一部をVPSに割当てることを指します。
VPSのインストールは予め用意されたVirtuozzo対応パッケージからVirtuozzo用ツールを使用して行います。
このためVPSとなるOSも限られています。

Virtuozzoは以下の特徴を持ちます。


ここではホストOSへのVirtuozzoの導入、GUI管理ツールの利用、VPS(Fedora Core 4)の作成を中心に手順等を紹介します。

[環境]
・ホストOS: CentOS 4.3
・Virtuozzoカーネル: 2.6.8-022stab067.1
・VPS: FC4(Fedora Core 4)

尚、VPSに対してはVNCでも接続できるようにしたいと思います。


  1. ホストOSへのVirtuozzoの導入


  2. FC4テンプレートのインストール
    Virtuozzo付属のfedora-core-4-x86-tmplパッケージを使用してFC4テンプレートをインストールします。
    # rpm -ivh fedora-core-4-x86-tmpl-3.0.0-1.swsoft.noarch.rpm
    # vzpkg create cache fedora-core-4-x86
    これによってrpmファイルが自動的にダウンロードされて/vz/template/cache/fedora-core-4-x86.tar.gzが作成されます。
    ※この生成されたfedora-core-4-x86.tar.gzをテンプレートキャッシュと呼ぶことがあります。
    最後に「Cache file fedora-core-4-x86.tar.gz [15M] created.」と表示されます。

  3. VPSの作成と基本設定
    VPSの作成方法には以下の3種類あります。
    (1)vzctlコマンドを使用したCUIインタフェースでのVPS作成。
    (2)VZMCという専用クライアントのGUIインタフェースでのVPS作成。
    (3)VZCCというWebベースのGUIインタフェースでのVPS作成。

    ここではまずvzctlコマンドを使用したCUIインタフェースでのVPS作成方法を紹介します。

    下記の101はVPSに付与する識別番号でVPSIDと呼ばれるものです。
    ※同じテンプレートキャッシュから識別番号の異なる複数のVPS群を作成することも可能です。

    # vzctl create 101 --ostemplate fedora-core-4-x86
    ※vzctl createで「--config」を省略した場合は/etc/sysconfig/vz-scripts/ve-vps.basic.conf-sampleの設定内容がデフォルトで適用されます。

    上記コマンドでVPSにインストールされるパッケージ一覧はこちらです。
    作成されたVPSの/boot/や/lib/modules/は空の状態ですがそのままで問題ありません。

    次にVPSの設定を以下のように行います。
    ここで設定した内容は/etc/sysconfig/vz-scripts/101.confに保存されます。
    # vzctl set 101 --hostname vzfc4 --save
    # vzctl set 101 --ipadd VPSのIPアドレス --save
    # vzctl set 101 --nameserver DNSアドレス --save
    # vzctl set 101 --diskspace 4194304:4613736 --save (※ディスク容量の4GB化用)

    [補足]
    VPS作成の段階ではVPS内にはVPS用ネットワーク環境は構築されません。
    VPS内でのVPS用ネットワーク環境構築は実際にVPSを起動した際にVirtuozzo/vzctlによって自動的に行われます。

  4. VPS設定ファイルのチューニング
    VPSの作成で自動作成されるVPS設定ファイル(/etc/sysconfig/vz-scripts/101.conf)はサーバ用途向けで、かつメモリ割当量も少なくなっています。
    このためデスクトップ用に使用する場合には若干の設定変更が必要です。
    ここでのVPS設定ファイルのチューニングは以下のようにします(VPSのメモリ割当量を512MBにするなどの設定変更をします)。
    ※本チューニングをしないとVNC接続ができないままとなります。

    [変更前]
    AVNUMPROC="40:40"
    NUMPROC="65:65"
    VMGUARPAGES="6144:2147483647"
    KMEMSIZE="2752512:2936012"    *kernel用のメモリ
    LOCKEDPAGES="32:32"
    SHMPAGES="8192:8192"
    PRIVVMPAGES="22528:24576"
    NUMFILE="2048:2048"
    NUMFLOCK="100:110"
    NUMPTY="16:16"
    NUMSIGINFO="256:256"
    DCACHESIZE="1048576:1097728"
    CPUUNITS="1000"
    

    [変更後]
    AVNUMPROC="256:256"
    NUMPROC="256:256"
    VMGUARPAGES="131072:2147483647"
    KMEMSIZE="2147483647:2147483647" *kernel用のメモリを実質制限しない設定です。
    LOCKEDPAGES="512:512" *mlocでロックしてスワップアウトをさせないメモリ量(この指定が特に重要)
    SHMPAGES="43008:43008"
    PRIVVMPAGES="131072:139264"
    NUMFILE="18624:18624"
    NUMFLOCK="376:412"
    NUMPTY="32:32" *擬似端末数(sshセッション数含む)
    NUMSIGINFO="512:512"
    DCACHESIZE="6819840:7249920"  *この設定も重要でシステム全体のメモリを効率的に使用できます。
    CPUUNITS="5000"
    

  5. VPSの起動とrootパスワード設定
    (1)VPSの起動
    # vzctl start 101

    [補足]
    VPSの起動時VPS設定ファイルに基づいてVPS内のネットワーク環境がVirtuozzo/vzctlによって自動的に構築されます。
    例えば下記ファイルが設定されます。
    ・/etc/sysconfig/networkへのVPSのゲートウェイアドレスやホスト名の設定
    ・/etc/sysconfig/network-scripts/ifcfg-venet0とifcfg-venet0:0の設定
    ・/etc/resolv.confの設定
    ・/etc/hostsへのVPSホスト名設定

    (2)rootパスワードの設定
    # vzctl exec 101 passwd
    New UNIX password: ********
    Retype new UNIX password: ********
    Changing password for user root.
    passwd: all authentication tokens updated successfully.
    
  6. VPSへのssh接続と/etc/sysconfig/networkの変更
    ssh root@vzfc4でVPSにsshでログインします。
    /etc/sysconfig/networkを編集してゲートウェイアドレスを正しく設定します(デフォルトは191.255.255.1)。
    変更後、下記コマンドでネットワークを再起動します。
    # /etc/init.d/network restart

  7. VZCCの利用
    VZCC(Virtuozzo Control Panel)はWebベースのVirtuozzo管理ツールです。



  8. VZPPの利用
    VZPP(Virtuozzo Power Panel)はWebベースのVPS管理ツールです。


  9. VPS内へのyumのインストール
    VirtuozzoでのVPS用テンプレート(パッケージ)にはyumは含まれていません。
    そこでyumを以下の操作で導入します。

    下記の指定例はある時点のURLとパッケージバージョンのものです。
    実際にはyum導入時点の最新のURLとパッケージバージョンに読み替える必要があります。
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/4/i386/libxml2-2.6.20-1.FC4.i386.rpm 
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/4/i386/yum-2.4.1-1.fc4.noarch.rpm
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/4/i386/libxml2-python-2.6.20-1.FC4.i386.rpm
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/4/i386/os/Fedora/RPMS/python-elementtree-1.2.6-4.i386.rpm
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/4/i386/os/Fedora/RPMS/python-sqlite-1.1.6-1.i386.rpm
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/4/i386/rpm-python-4.4.1-22.i386.rpm
    # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/4/i386/os/Fedora/RPMS/python-urlgrabber-2.9.6-1.noarch.rpm
    
    # rpm -ivh libxml2-2.6.20-1.FC4.i386.rpm
    # rpm -ivh libxml2-python-2.6.20-1.FC4.i386.rpm
    # rpm -ivh python-elementtree-1.2.6-4.i386.rpm
    # rpm -ivh python-sqlite-1.1.6-1.i386.rpm
    # rpm -ivh rpm-python-4.4.1-22.i386.rpm
    # rpm -ivh python-urlgrabber-2.9.6-1.noarch.rpm
    # rpm -ivh yum-2.4.1-1.fc4.noarch.rpm
    
  10. /etc/yum.repos.d/fedora.repoのgpgkey変更
    /etc/yum.repos.d/fedora.repo中の「gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora」を
    「gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY」に変更します。

  11. お好みのパッケージインストール
    VPSにyumを導入できたので後はそのyumでお好みのパッケージをインストールできます。
    例;
    # yum groupinstall "X Window System"
    ※/etc/X11/xorg.confは自動生成されません。
    
    # yum install gdm
    # yum groupinstall "GNOME Desktop Environment"
    # yum groupinstall "XFCE"
    # yum groupinstall "KDE (K Desktop Environment)"
    # yum install kde-i18n-Japanese
    # yum install firefox
    # yum install gimp*
    # yum groupinstall "Japanese Support"
    # yum install iiimf*
    # yum install fonts-xorg-truetype
    # yum install ghostscript-fonts
    # yum install bitmap-fonts
    # yum install fonts-xorg-75dpi
    # yum install bitstream-vera-fonts
    # yum install kon2-fonts
    # yum install urw-fonts
    # yum install fonts-xorg-100dpi
    # yum install fontconfig-devel
    # yum install fonts-japanese
    # yum install man-pages-ja
    
    # vi /etc/sysconfig/i18n
    以下のように変更します。
    LANG="ja_JP.UTF-8"
    SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
    SYSFONT="latarcyrheb-sun16"
    
    # yum install kbd
    
    # vi /etc/sysconfig/keyboard
    以下の行から成るファイルを作成します。
    KEYBOARDTYPE="pc"
    KEYTABLE="jp106"
    
    # mv /etc/localtime /etc/localtime.msd
    # ln -s /usr/share/zoneinfo/Japan /etc/localtime
    
    # yum install xorg-x11-Xvfb
    # yum install vnc-server
    
    # vi /etc/services
    下記の行を追加します。
    vncserver1 5901/tcp  # vncserver :1
    
    # /etc/xinetd.d/vncserver1
    以下の行から成るファイルを作成します。
    service vncserver1
    {
            disable = no
            socket_type = stream
            wait = no
            user = nobody
            server = /usr/bin/Xvnc
            server_args = -inetd -query localhost -once -geometry 800x600 -depth 16 securitytypes=none
    }
    
    # vi /etc/inittab
    「id:3:initdefault:」を「id:5:initdefault:」に変更します。
    尚、/etc/X11/gdm/gdm.confと/etc/X11/fs/configの変更内容はOpenVZ(Fedora Core 4 デスクトップ編)の場合と同じです。
  12. VPSの再起動
    ホスト側より以下のコマンドでVPSを再起動させます。

    # vzctl stop 101
    # vzctl start 101
    または
    # vzctl restart 101

  13. VNC接続利用
    WindowsのVNCクライアントから「vzfc4:1」指定で接続します。
    ※日本語モードのgdm画面が表示されます。
    GNOMEセッション起動はスプラッシュ表示時にエラーが発生するためここではセッションタイプとして「XFce 4」を選択します。




    あとはXFceデスクトップを操作します。



    もちろんホスト上のvncviewerからも接続してFC4をデスクトップ操作できます。



  14. Windows版のVZMC
    VZMCにはLinux版とWindows版があります。
    ここではWindows版を紹介します。


  15. VZCCでのVPS作成