サーバ

2015年4月17日 (金)

domU の orca サーバ 12.04 を 14.04 にアップグレード

まずは autoremove
$ sudo apt-get autoremove
しかる後にアップグレード。
$ sudo do-release-upgrade
jma-receipt は do-release-upgrade の対象ではないので,自動的に apt line がコメントアウトされる。
リポジトリ情報のアップデート
サードパーティが提供するリポジトリを使わない設定にしました
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、'ソフトウェアソース'
ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。
続けるには [ENTER] キーを押してください
postgres もアップグレード後に設定し直す必要がある。
メジャーバージョン 9.1 はもはや使われません
PostgreSQL バージョン 9.1 は既に使われなくなっていますが、サーバおよびクライアント用パッケージがインス
  :
詳細は /usr/share/doc/postgresql-common/README.Debian.gz を参照してください。
アップグレードは dolphin サーバと同じく,postgres 関連のエラーで終了する。気にしないで新しいカーネルで再起動する。
処理中にエラーが発生しました:
  :
アップグレードは完了しましたが、アップグレード中にいくつかのエラーが発生しました。
続けるには [ENTER] キーを押してください
再起動後に,postgresql 9.1 を purge すると,自動的に postgres-9.3 が設定される。
$ sudo service postgresql stop
$ sudo aptitude purge postgresql-9.1
jma-receipt の apt line を修正する。precise → trusty の書き換えはしてくれないので,手動で書き換える必要がある。
$ cd /etc/apt/sources.list.d/
$ sudo sh -c "sed -e 's/^# //' jma-receipt-precise48.list | sed 's/#.*$//' | sed 's/precise/trusty/' > jma-receipt-trusty48.list"
$ sudo rm jma-receipt-precise48*
jma-receipt のアップグレード
$ sudo aptitude update
$ sudo aptitude upgrade
CLAIM モジュール不具合修正パッチ適用
$ wget https://ftp.orca.med.or.jp/pub/data/receipt/outline/update/claim_update.tar.gz
$ tar xvzf claim_update.tar.gz
$ sudo bash claim_update.sh
claim_update_.log.gzを作成しました。
データベースの初期化
$ sudo service jma-receipt stop
$ sudo jma-setup --noinstall
DBHOST:		OK (PostgreSQL:localhost)
DBUSER:		OK (orca)
DATABASE:	OK (orca)
DBENCODING:	OK (EUC-JP)
OK! データベースをリストア後再度 jma-setupを実行してください
データベースのリストア
$ pg_restore -Fc -d orca orca_db.dump
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 5177; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR:  must be owner of extension plpgsql
    Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';

pg_restore: WARNING:  no privileges could be revoked for "public"
pg_restore: WARNING:  no privileges could be revoked for "public"
pg_restore: WARNING:  no privileges were granted for "public"
pg_restore: WARNING:  no privileges were granted for "public"
WARNING: errors ignored on restore: 1
もう一回 jma-setup
$ sudo jma-setup
BHOST:		OK (PostgreSQL:localhost)
DBUSER:		OK (orca)
DATABASE:	OK (orca)
DBENCODING:	OK (EUC-JP)
DBKANRI		OK (tbl_dbkanri)
UPDATE CHECK:	OK (online)
DBLIST:		OK (040800-1)
LIST DOWNLOAD:	OK (nothing)
DBVERSION:	OK (0408001)
データベース構造変更処理は終了しました
pg_hba.conf の設定
host   all   all   192.168.1.0/24   trust
postgresql.conf の設定
listen_addresses = '*'
リブート後,monsiaj でアクセスしてプログラム更新,マスタ更新,しかる後にスキーマチェック。
$ wget http://ftp.orca.med.or.jp/pub/etc/jma-receipt-dbscmchk.tgz
$ tar xvzf jma-receipt-dbscmchk.tgz
$ cd jma-receipt-dbscmchk
$ sudo bash jma-receipt-dbscmchk.sh
ubuntu 14.04 の orca 4.8 は 2017年の 9月までサポートされる予定。

2015年4月16日 (木)

domU の dolphin サーバ 12.04 を 14.04 にアップグレード

まずは autoremove
$ sudo apt-get autoremove
しかる後にアップグレード。
$ sudo do-release-upgrade
java 1.8 は PPA でインストールしていたので,do-release-upgrade の際には停止される。
リポジトリ情報のアップデート
サードパーティが提供するリポジトリを使わない設定にしました
sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、'ソフトウェアソース'
ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。
続けるには [ENTER] キーを押してください
postgres が 9.1 から 9.3 にアップグレードされるので,これも後で設定が必要になる。
メジャーバージョン 9.1 はもはや使われません
PostgreSQL バージョン 9.1 は既に使われなくなっていますが、サーバおよびクライアント用パッケージがインス
  :
詳細は /usr/share/doc/postgresql-common/README.Debian.gz を参照してください。
アップグレードは下のようなエラーメッセージを出して終了する
致命的なエラーが起こりました
dpkg: error processing package postgresql (--configure):
 依存関係の問題 - 設定を見送ります
処理中にエラーが発生しました:
 postgresql-client-9.3
 postgresql-9.3
 postgresql
アップグレードが完了しました
アップグレードは完了しましたが、アップグレード中にいくつかのエラーが発生しました。
続けるには [ENTER] キーを押してください
=== Command detached from window (Sun Apr  5 09:03:08 2015) ===
=== Command terminated with exit status 1 (Sun Apr  5 09:03:08 2015) ===
ここで,ESC キーを押して
Press x to destroy or r to resurrect window
x でぬけて,新しい kernel で再起動する。 再起動したら,まず postgresql-9.1 を削除する。postgresql-9.1 を削除すると,postgresql-9.3 の設定も行われる。
$ sudo service postgresql stop
$ sudo aptitude purge postgresql-9.1
データベースを pg_upgradecluster でアップグレードしようとすると,ものすごく時間がかかってしまうので,dump から戻すようにする。(pg_upgradecluster では1時間以上たっても終わらなかったが,dump から戻したら 10分で終了した) なお,dump を戻すときは posgresql.conf で fsync = off にしておくと時間の節約になる。
$ sudo -u postgres createuser --super dolphin
$ createdb dolphin
$ psql -c "alter user dolphin with password ''"
$ pg_restore -Fc -d dolphin dolphin_db.dump
java 1.8 の apt line を再有効化する。 /etc/apt/sources.list.d/webupd8team-java-precise.list のファイルネームを変更し,先頭の # を除去して有効化する。*.distUpgrade は削除する。
$ cd /etc/apt/sources.list.d/
$ sudo mv webupd8team-java-precise.list webupd8team-java-trusty.list
$ sudo rm webupd8team-java-precise.list.distUpgrade
$ sudo vi webupd8team-java-trusty.list
$ sudo aptitude update
$ sudo aptitude upgrade
$ sudo update-alternative --config java
以上で ubuntu 14.04 へのアップグレードは完了。

2015年4月15日 (水)

サーバの dom0 を ubuntu 14.04 にアップグレード

勢いで,サーバを ubuntu 12.04 から 14.04 にアップグレードした。

不要なカーネルの削除

アップデート前に,たまった不要なカーネルを削除する。アップグレードの度にきちんと削除していればよかったのだが,めんどくさいのでそのままにしていたら,結構な数の古いカーネルが /boot にたまってしまっていた。 apt-get autoremove をすると初代と最新2つを残して,不要なカーネルを削除してくれる。
$ sudo apt-get autoremove
この時,1つカーネルを削除する毎に,update-grub 処理が入るので,その度に mac os x や xen domU が入っている全てのパーティションをスキャンしに行って,ものすごい時間がかかってしまった。これを避けるには /etc/default/grub に
GRUB_DISABLE_OS_PROBER="true" 
を追加するとよい。

アップデート方法

最近の OS 起動は,MBR ではなく GPT (GUID Partition Table)+ UEFI (unified extensible firmware interface) というシステムに変わってきているらしく,ubuntu 14.04 は新規インストールだと UEFI ブートでインストールすることができる。自宅サーバの mac mini (mid 2011) は UEFI の起動パーティションを持っており,UEFI ブートに対応できる。
$ sudo mount -t msdos /dev/sda1 /mnt
$ ls -l /mnt/efi
合計 1
drwxr-xr-x 4 root root 512  7月  9  2011 apple/
試しに ubuntu 14.04 を新規インストールしてみたら,確かに rEFIt を使わなくてもそのまま ubuntu を起動することができた。しかし,Xen をインストールしたところ,ACPI BIOS Error というのが出て,CPU のコアが 1つしか認識されなかったり,USB が使えなかったりした。
[    0.000000] ACPI BIOS Error (bug): A valid RSDP was not found (20140424/tbxfroot-211)
$ lsusb
unable to initialize libusb: -99
どうやら,ubuntu 14.04 では Xen の UEFI ブートはまだちゃんとサポートされていないらしい (Upstream Linux Kernel will have Xen dom0 EFI support from 3.17-rc1)。当面はMBR 起動で使うことにして, do-release-upgrade でアップグレードすることにした。
$ sudo do-release-upgrade
  :
SSH経由で実行していますが、続けますか? ...
続行する[yN] y
  :
予備のsshdを開始します...
続けるには [ENTER] キーを押してください
  :
アップグレードを開始しますか?...
続行する[yN]  詳細 [d] y
  :
Configuring libc6...
Restart services during package upgrades without asking?
<Yes>
  :
変更された設定ファイル...
設定ファイル /etc/default/xen の新しいバージョンが利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。 
パッケージメンテナのバージョンをインストール                                
  :
grub-pc を設定しています ...
現在インストールされているローカルバージョンを保持
(GRUB_DISABLE_OS_PROBER の設定の違いのみなので「ローカルバージョンを保持」)
  :
サポートが中止された(あるいはリポジトリに存在しない)パッケージを削除しますか?
 続行する[yN]  詳細 [d] y
  :
システムのアップグレードが完了しました。
再起動が必要です
無事アップグレードされた
$ uname -a
Linux ubuntu 3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

xen の変わったところ

  • xm コマンドが xl コマンドに変わった。
    $ sudo xl list
    Name                                        ID   Mem VCPUs	State	Time(s)
    Domain-0                                     0  7878     8     r-----     120.6
    
  • これまでは /etc/grub.d の番号を変えて xen を優先起動していたが /etc/default/grub.d/xen.cfg で xen の優先起動ができるようになった。
    XEN_OVERRIDE_GRUB_DEFAULT=1
    
  • cfg ファイルの disk の書き方が変わった
  • /etc/xen/auto に cfg ファイルのリンクを入れておくと,dom0 起動時に一緒に起動するようになった。

2013年10月 1日 (火)

ownCloud 導入

これまで自宅サーバーを WebDAV で運用していたが,クラウド時代に合わせて,ownCloud を導入してみた。

 

サーバ設定 (ubuntu 12.04 にインストール)

  1. apt-line の追加
    deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /
    
  2. keyring の追加
    $ wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key
    $ sudo apt-key add Release.key
    
  3. インストール:データベースはデフォルトで sqlite3 を使うようになっているが,何だか遅いので,使い慣れた postgres を使うことにする
    $ sudo aptitude update
    $ sudo aptitude install postgresql
    $ sudo aptitude install php5-pgsql
    $ sudo aptitude install owncloud 
    
  4. インストールしたバージョン
    $ aptitude show owncloud
    パッケージ: owncloud
    バージョン: 5.0.11-0
    
  5. ssl 設定
    $ sudo a2enmod
     :
    Which module(s) do you want to enable (wildcards ok)? 
    ssl
    
    $ sudo a2ensite
    Your choices are: default default-ssl
    Which site(s) do you want to enable (wildcards ok)?
    default-ssl
    
  6. /etc/apache2/sites-enabled/ssl-default を編集,オレオレ証明書を設定
    SSLCertificateFile    /etc/ssl/certs/server.pem
    SSLCertificateKeyFile /etc/ssl/private/server.key
    SSLCACertificateFile  /etc/ssl/cacert.pem
    
  7. /etc/apache2/conf.d/owncloud.conf でアクセス制限
    <Directory /var/www/owncloud/>
      Order deny,allow
      deny from all
      allow from 192.168.1.0/24
      allow from xxx
    </Directory>
    
  8. cron の設定:キューに積まれた job を一定時間毎に実行する必要があるらしい
    $ sudo crontab -l
    # owncloud: execute cron.php every one minute
    *          *  *   *   *   php -f /var/www/owncloud/cron.php > /dev/null 2>&1
    
  9. データベース作成
    $ sudo -i
    # su - postgres
    $ psql 
    postgres=# CREATE USER username WITH PASSWORD 'password';
    postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE';
    postgres=# ALTER DATABASE owncloud OWNER TO username;
    postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO username;
    postgres=# \q
    
  10. /etc/postgresql/9.1/main/postgresql.conf で fsync = off に設定:信頼性より速度優先
    fsync = off     # turns forced synchronization on or off
    
    $ sudo service postgresql restart
    
  11. apache2 リスタート
    $ sudo service apache2 restart
    
  12. あとは,https://server-address/owncloud にアクセスするとブラウザで設定ができる。
    • 「ユーザー名」と「パスワード」を入れて,「詳細設定」をクリック,データベースとして postgres を選択して,データベース情報を入力する。
    • 「管理者」メニューから「常に HTTPS を使用する」と「Cron」の設定をする。
  13. この時点で WebDAV サーバが立ち上がっており,Mac OS X から ⌘-K で マウントすることができる。
    https://user_id@host-address/owncloud/remote.php/webdav
    

クライアントソフト

ownCloud クライアントソフトを導入すると,ローカルの ~/ownCloud フォルダに対して行った変更が,バックグランドで自動的にサーバと同期されるようになる。
  1. web 画面の右上の IDメニューから,「個人」を選択すると,「Get the apps to sync your files」が出るので,そこからクライアントがダウンロードできる。
  2. 起動するとメニューバーにアイコンが出る。
  3. 初期設定ファイルは「~/Library/Application Support/ownCloud」に入る。

ファイルの同期

自宅の WebDAV サーバで管理しているデータ量は,ファイル数 262,767(容量 17.2 GB) あった。最初これを全部クライアントソフトで管理しようとしたが,更新検出のための1回のスキャンだけで,ローカルで 〜200 sec,リモートで 〜2,700 sec(45分)かかってしまった。これでは,更新検出のためだけに1日中コンピューターが回り続けることになってしまい実用的ではない。そこで,active に使う 1,709 ファイル(容量 406 MB)を選んで,これをクライアントで管理し,その他はこれまで通り WebDAV で管理することにした。
  1. サーバにユーザーを2つ作る。1つはクライアント同期用,もう1つは WebDav アクセス用。
  2. サーバの /var/www/owncloud/data/user_id/files にそれぞれデータを持っていく。
  3. サーバに認識させるために,スキャンする。完了まで 23分かかった。
    # cd /var/www/owncloud
    # php console.php files:scan --all
    
  4. クライアントに,同期用のデータと同じものをコピーして持っていって,~/ownCloud に入れる。
  5. ownCloud client を立ち上げて,必要な情報を入力する。完了すると同期が始まるが,動作が安定するまでは,バックグランドで何しているか分かるように,作業内容をログに書き出す設定にするとよい。
    $ /Applications/owncloud/Contents/MacOS/owncloud --logfile /path/to/LOGFILE &
    $ tail -f /path/to/LOG FILE
    
  6. 最初,.scync_journal.db を作るためのスキャンで少し時間がかかるが,それができてしまえば,その後は更新確認のためのスキャンは1回1秒以下で終了するようになった。

使用感

Mac OS X では,マウントした WebDAV 内のファイルを直接編集できるのだが,編集後の保存に結構時間がかかるので,動作がもっさりしていた。ownCloud のクライアントを使うと,保存は一瞬で,あとはバックグランドでサーバと同期してくれるので,もっさりが解消された。

2013年4月 4日 (木)

CPU 数割り当て

サーバの CPU を i7 にアップグレードしたが,この CPU は 4コア+HT で,8 個の CPU として認識される。

$ cat /proc/cpuinfo
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
 :
processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
 :
 :
processor	: 7
vendor_id	: GenuineIntel
cpu family	: 6
model		: 58
model name	: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
 :

このあり余る CPU を dolphin サーバ,orca サーバにどう割り当てたらよいか実験してみた。

CPU数時間
1 11.3秒
2 6.4秒
4 5.1秒
8 5.1秒

dolphin サーバの JBoss 起動時間

JBoss 起動時間は CPU 数を増やす毎に速くなった。
JBoss  の起動プロセスは,複数の CPU を上手に利用するようになっているようだ。

CPU数時間
1 9.1秒
2 8.6秒
4 8.8秒
8 8.9秒

大量カルテ読み込み時間

カルテ読み込み時間は CPU 数には無関係だった。
複数 CPU を生かすようなプログラミングってできるんだろうか。

CPU数時間
1 1分40秒
4 1分41秒
8 1分42秒

orca サーバでレセプト作成

orca のレセプト作成も CPU 数は関係ないようであった。

当院業務では CPU 数による大きな差はないようだった。
とりあえず,dolphin サーバ,orca サーバとも CPU 4個で動かすことにした。

結論:この CPU は当院業務には明らかにオーバースペックである。

2013年3月29日 (金)

ネットワークカード購入

CPU をアップグレードして性能はアップしたのであるが,on board LAN (Realtek 8168) のドライバで,めんどくさいことになってしまっていた。結局,ネットワークカードを別に購入して対応することにした。購入したカードは「インテル Gigabit CT Desktop Adapter EXPI9301CT」というもの。lspci によると 82574L というチップらしい。

  1. on board LAN を使うために設定した内容を,すべて元に戻す。
  2. ネットワークカードを装着。
  3. BIOS で on board LAN を disable する。
  4. 起動。

何も設定しなくても ether がつかえるようになった。安いマザーボードを選んだばっかりに「安物買いの・・」になってしまったが,ネットワークカードは今後マザーボードを変えてもずっと使えるだろうからよしとする。

2013年3月27日 (水)

ベンチマーク

新しいサーバで速度比較してみた。i7-3770 激速。

CPUi7-3770@3.4
SSD
C2D E7200@2.53
SSD
C2D E4500@2.2
HD
大量カルテ読み込み6.8秒9.1秒-
dolphin サーバのデータベースダンプ3分43秒6分9秒-
orca データチェック27秒49秒1分16秒
orca レセプト作成1分17秒2分14秒2分51秒

orca も 4.6 より,4.7 の方が速くなっているようだ。

2013年3月26日 (火)

サーバの CPU アップグレード

CPU(Core i7-3770 @3.40G) とマザーボード(ASUS P8B75-M)を買ってきて,サーバマシンをアップグレードした。マザーボードは一番安いものを買ってきたのであるが,そのままでは ether が使えないことが判明した。調べてみたら web に ubuntu 関連のトラブル報告がたくさん上がっており,事前によく調べておけばよかったと後悔した。

 P8B75-M の ether チップは,realtek RTL8111/8168B というものであるが,ubuntu で用意されている r8169 というドライバが対応しておらず,メーカーからドライバをダウンロードして,自分でコンパイルする必要がある。

  1. 使えない r8169 をブラックリストに登録する。/etc/modprobe.d/blacklist.conf に r8169 の1行を加える。
  2. Realtekからドライバ(LINUX driver for kernel 3.x and 2.6.x and 2.4.x version 8.035.00)をダウンロードする。
  3. 展開する。
    $ tar xvjf r8168-8.025.00.tar.bz2
    
  4. コンパイル,インストール。これで,/lib/modules/3.2.0-xx-generic/kernel/drivers/net/ethernet/realtek/ にドライバ r8168.ko がインストールされる。
    $ cd realtek8168/r8168-8.035.00
    $ make clean modules
    $ sudo make install
    
  5. /etc/modules/etc/initramfs-tools/modules に r8168 の1行を加える。
  6. depmod する。
    $ sudo depmod -a
    
  7. initramfs のアップデート
    $ sudo update-initramfs -v -u -k `uname -r`
    
  8. リブートする。
  9. r8168 が eth0 でアップせず eth1 になっている場合は,/etc/udev/rules.d/70-persistent-net.rules の対応行を削除してリブートする。

aptitude upgrade して,カーネル 3.2.0-xx の xx が変わった場合,コンパイルから再度設定する必要がある。めんどくさいことになってしまった。

2012年8月17日 (金)

ファイルサーバのバージョンアップ

当院では、添書などの文書はファイルサーバ(samba)に保存するようにしている。ファイルサーバは ubuntu 8.04 を dom-U として使用していたが、今回これを 12.04 までアップグレードしてみた。

  1. update-manager-core をインストールして,do-release-upgrade する。-d オプションをつけることで,LTS 内で10.04 → 12.04 とアップグレードできる。
    まずは,10.04 (lucid) までアップグレード。
    $ sudo aptitude install update-manager-core
    $ sudo do-release-upgrade -d
     :
    System upgrade is complete.
    Restart required
    To finish the upgrade, a restart is required.
    If you select 'y' the system will be restarted.
    
    Continue [yN] y
    
  2. このリスタートは,カーネルがセットされてないので失敗する。lucid の xen 用カーネル(2.6.32-xxx-ec2)をファイルサーバの cfg ファイル(samba.cfg)に指定して再起動。
    $ cat /etc/xen/samba.cfg
    kernel  = '/xen-kernels/lucid/vmlinuz-2.6.32-346-ec2'
    ramdisk = '/xen-kernels/lucid/initrd.img-2.6.32-346-ec2'
     :
    
  3. もう一度 do-release-upgrade -d する。今度はリスタートで立ち上がるが,カーネルは lucid のままになっている。
  4. 再起動の前に hvc0.conf を作成する。
    # sed -e 's/tty1/hvc0/g' /etc/init/tty1.conf > /etc/init/hvc0.conf
    
    これがないと再起動したときに,
    Begin: Running /scripts/init-bottom ... done.
    
    の後で止まってしまう。
  5. さらに,virtual マシン用のカーネルをインストールする
    # aptitude install linux-image-virtural
    
    インストールされた カーネルを /xen-kernels/precise にもってくる。
  6. samba.cfg に 12.04 のカーネル(3.2.0-29-virtual)を指定して再起動。
    $ cat /etc/xen/samba.cfg
    kernel  = '/xen-kernels/precise/vmlinuz-3.2.0-29-virutal'
    ramdisk = '/xen-kernels/precise/initrd.img-3.2.0-29-virutal'
     :
    
    dom-0 が ubuntu 12.04 の場合は,dom-0 の generic カーネルを指定しても起動するが,dom-U の generic を指定すると立ち上がらない。
これで,samba のデータや設定等はそのまま引き継いでアップグレードできた。

2012年8月10日 (金)

Ubuntu 10.04 を dom-U としてインストール

当院の ORCA サーバは,Xen の dom-U として構築した Ubuntu 8.04 である。来年3月でサポートが切れるので,今年中に 10.04(Lucid) にアップデートしようと考えている。まだまだ時間はあるが,とりあえず,Xen の dom-U で Lucid を構築できるかどうかやってみた。
  1. インストールするパーティションを用意する。当院では,物理パーティションを作って構築している。今回は,自宅サーバ(ubuntu 12.04 on mac mini)の sdb6 に parted で 20GB のパーティションを作り,ext3 でフォーマットして作成してみた。
    # parted /dev/sdb
    (parted) mkpart
    Partition name?  []? lucid
    File system type?  [ext2]? ext3
    Start? 160GB
    End? 180GB
    (parted) p
    Number  Start   End     Size    File system  Name                  Flags
     1      20.5kB  210MB   210MB   fat32        EFI System Partition  boot
     2      211MB   30.0GB  29.8GB  ext3         orca
     3      30.0GB  60.0GB  30.0GB  ext3         dolphin
     4      60.0GB  90.0GB  30.0GB  ext3         samba
     5      90.0GB  160GB   70.0GB  ext3         vmz
     6      160GB   180GB   20.0GB               lucid
    (parted) quit
    # sudo mkfs.ext3 /dev/sdb6
    mke2fs 1.41.12 (17-May-2010)
    warning: 256 blocks unused.
     :
    This filesystem will be automatically checked every 25 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
  2. debootstrap をインストールする
    # aptitude install debootstrap
    
  3. 作成した sdb6 を /mnt にマウントして,debootstrap でシステムを構築する
    # debootstrap --arch i386 lucid /mnt http://archive.ubuntu.com/ubuntu
    I: Retrieving Release
    I: Retrieving Packages
    I: Validating Packages
     :
    #
    
  4. chroot で /mnt に入り,xen のカーネルと libc をインストールする。使うカーネルは linux-image-ec2。
    # chroot /mnt
    # aptitude install linux-image-ec2 libc6-xen 
    
  5. さらに、各種設定をしてから chroot を抜ける
    # passwd
    # adduser
    # visudo
    # dpkg-reconfigure tzdata
    # aptitude insatall language-pack-ja
    # dpkg-reconfigure locales
    # exit
    
  6. カーネルを /xen-kernels/lucid/ にコピー
    $ sudo cp /mnt/boot/* /xen-kernels/lucid/
    
  7. スワップファイルの作成
    # mkdir /mnt/swap
    # dd if=/dev/zero of=/mnt/swap/swap0 bs=1K count=1M
    # chmod 600 /mnt/swap/swap0
    # mkswap /mnt/swap/swap0
    
  8. /mnt/etc/fstab の作成
    /dev/xvda1    /      ext3  errors=remount-ro       0  1
    /swap/swap0   none   swap  sw                      0  0
    proc          /proc  proc  rw,nodev,nosuid,noexec  0  0
    
  9. /mnt/etc/network/interface の作成
    auto eth0
    iface eth0 inet dhcp
    
  10. その他必要に応じてファイルを編集
    • /etc/resolv.conf
    • /etc/hostname
    • /etc/apt/sources.list
  11. /etc/xen/lucid.cfg の作成
    kernel  = '/xen-kernels/lucid/vmlinuz-2.6.32-305-ec2'
    ramdisk = '/xen-kernels/lucid/initrd.img-2.6.32-305-ec2'
    memory  = '512'
    name        = 'lucid'
    vif       = [ 'mac=00:16:3e:00:01:00' ]
    disk = [ 'phy:sdb6,xvda1,w' ]
    root = '/dev/xvda1 ro'
    on_poweroff = 'destroy'
    on_reboot = 'restart'
    on_crash = 'restart'
    
  12. /mnt をアンマウントして,lucid を立ち上げる
    # umount /mnt
    # xm create lucid.cfg -c
    Started domain lucid (id=4)
     :
    Ubuntu 10.04.4 LTS lucid tty1
    lucid login: 
    

その他のカテゴリー