DVDやisoファイルからyumでパッケージをインストールする

社内の検証環境など、インターネットには接続できないけど、RHELのDVDやisoファイルはあるよという場合には、そこからパッケージをインストールすることができます。

repoファイルの作成

まずは以下のようなrepoファイルを作成する。
[root@clone14 ~]# cat /etc/yum.repos.d/RHEL-Media.repo 
[rhel-media]
name=Red Hat Enterprise Linux $releasever - Media
baseurl=file:///media/cdrom/Server/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

RHELのDVDやisoファイルのマウント

DVDの場合
[root@clone14 ~]# mkdir /media/cdrom
[root@clone14 ~]# mount /dev/cdrom /media/cdrom
isoファイルの場合
[root@clone14 ~]# mkdir /media/cdrom
[root@clone14 ~]# mount -t iso9660 -o loop rhel-server-6.3-x86_64-dvd.iso /media/cdrom

パッケージのインストール

後は、好きなパッケージを以下のようにインストールするだけ。
毎回打つのは面倒なのでエイリアスに登録しておくといいですね。
# yum --disablerepo=\* --enablerepo=rhel-media install emacs

KVM仮想化環境構築 - その5

今回はKVM上で仮想マシンを作成してゲストOSにUbuntu 11.10ベースのLinux Mint 12をインストールします。

ゲストOSイメージ準備

OSイメージは公式サイトからリンクされているここからダウンロードしました。


ダウンロードしたファイルはvirt-managerに登録してあるストレージプールに配置しておきます。

仮想マシン作成

virt-managerのホスト一覧からlocalhost(QEMU)」を選択し、左上の「New」ボタンを押します。


上のテキストボックスには仮想マシンに付ける名前を、下のラジオボタンではインストール方法を指定します。今回は名前に「mint」、インストール方法に「Local install media (ISO image or CDROM)」を指定しました。


上のラジオボタン「USE ISO image」にチェックをつけ、「Browse」ボタンを押します。


virt-managerに登録済みのストレージプール一覧が現れるので、ここで先ほどダウンロードしたISOファイルを選択し「Choose Volume」ボタンを押します。


下のOS typeにはLinuxを、VersionにはUbuntu 11.10 (Oneiric Ocelot)」を指定し、「Forward」ボタンを押します。


仮想マシンへ割り当てるメモリとCPUを指定します。メディアサーバにしたいのでメモリ「2048」MB、CPU「2」コアを割り当てることにしました。指定後「Forward」ボタンを押します。


次は仮想マシンへ割り当てるディスク(※1)を指定します。一番上の「Enable storage for this virtual machine」にチェックを入れ、「Select managed or other existing storage」を選択後「Browse」ボタンを押します。


仮想マシン用のディスクを配置したいストレージプールを選択し、下の「New Volume」ボタンを押します。


Nameには仮想マシン用ディスク名を、Formatには仮想マシン用ディスクの形式を指定します。下のMax Capacityは仮想マシン用ディスクの最大サイズ、Allocationは初期割当サイズを指定します。ちなみに僕はFormatに「qcow2」を、Max Capacityに「0」をAllocationに「20480」MBを指定しました。


仮想マシン用ディスクの指定が終わったので「Forward」ボタンを押します。


最後に設定を確認し、問題なければ「Customize configuration before install」にチェックを入れて「Finish」ボタンを押します。


仮想マシンの設定画面が立ち上がってくるので、Processorを選択し「Configuration」「Copy host CPU configuration」ボタンを押します。vSphere Clientでの設定とは違い右下の「Apply」ボタンを毎回押さないといけないので注意してください。


「Disk 1」を選択し、「Disk bus」を「Virtio」(※2)に変更。


NICを選択し、「Device model」を「virtio」に変更。


「Display VNC」を選択し、「Keymap」を「ja」に変更。


設定変更が完了したら左上の「Begin Installation」ボタンを押します。


Linux Mintインストール

仮想マシン起動後に表示されるデスクトップ上で「Install Linux Mint」をダブルクリックします。


言語選択画面が表示されるのでお好みの言語を指定します。


インストール要件として「5.8GB以上の空きディスク領域があること」、「インターネットに接続されていること」を求められます。条件を満たしているので「Continue」ボタンを押します。


ディスクへのインストール方法を聞かれます。ディスクは全部使うので上の「Erase disk and install Linux Mintにチェックを入れて「Continue」ボタンを押します。


先ほど作成した仮想ディスクが表示されます。ここにインストールするので「Install Now」ボタンを押します。


タイムゾーンを聞かれるので「Tokyo」を選んで「Continue」ボタンを押します。


キーボードレイアウトは「Japanese」を選びます。


ユーザ名を聞かれるので適当に入力し「Continue」ボタンを押します。


後はインストール終了を待つだけです。


インストールが完了したので「Restart Now」ボタンを押します。


あとは他のOSと同じで起動後にパスワードを入力してログインするだけです。


(※1)KVMの仮想ディスク
KVMで使える仮想ディスクはファイル形式や領域の確保の仕方など、いろいろな選択肢がありますが、おおまかには以下の2つの内のどちらかがおすすめです。
 • ノンスパースraw形式:
  物理ディスク消費が多くてもいいので、仮想マシンの高速性を重視したい場合はこれ。
 • qcow2形式
  仮想マシンは遅くなってもいいので、物理ディスク消費量を押さえたい場合はこれ。

qcow2形式の仮想ディスクはvirt-managerのUIで作成することができますが、ノンスパースraw形式の仮想ディスクを使用したい場合は、あらかじめ以下のようにCUIで作成し、ストレージプールに配置しておかなければいけません。

# dd if=/dev/zero of=mint.img bs=1M count=20480 (mint.imgという名前で20GByteの仮想ディスクを作成)

(※2)virtio
virtioはKVM環境で準仮想化を実現する仕組みです。高速かつハイパーバイザの負荷も少ないため、通常無条件にvirtioにしてしまっていいと思います。ただし利用するためにはゲストOSにvirtioドライバが必要になります。
ゲストOSがLinuxの場合はカーネル2.6.25以降で標準で組み込まれているので最近のLinuxであれば問題ありません(RHELの場合は5.4以降でも大丈夫)。
ゲストOSがWindowsの場合は別途ドライバを用意する必要があります。KVMサイトからダウンロードしましょう。ちなみにIDEやe1000などの通常の仮想化デバイスでゲストOSをインストールしてしまった後でも、virtioドライバをインストールして仮想マシンのデバイスを変更すればvirtioの利用は可能です。Windowsの場合はおそらくこの手順になると思います。


次回は仮想マシン操作関連を紹介します。

Mac風Linux Comice OSをMacBookにインストールする(デュアルブート)

最近話題になっているMacLinuxMacBookに入れます(なんで)。失敗したらMacの再インストールが必要になる場合がありますので、やる場合は慎重にやりましょう。

rEFItインストール

rEFItはMac起動時にOS選択メニューを表示してくれるソフトウェアです。Macでマルチブート環境を実現する場合はとても便利です。

まずはインストーラのダウンロードです。ファイルはここのページ「rEFIt 0.14 (6.5M Mac disk image)」にあります。


ダウンロードした「rEFIt-0.14.dmgをダブルクリックするとファイルが展開されるので、更に「rEFIt.mpkg」をダブルクリック。


あとは次へ進むボタンを押していくだけでインストール完了です。


Macを再起動してこんなメニュー画面が表示されたら成功です。ちなみに僕の環境では一回の再起動ではダメで二回再起動したらこの画面になりました。謎です。

パーティション設定

Macのディスクユーティリティを開き、swap用とComice OSのパーティションを切ります。
左ペインでハードディスク選択し、右ペインの「+」ボタンを2回押してパーティションを2つ増やし、サイズを指定します。僕はswap、Comice OS用それぞれ4GB、40GBで切りました。

Comice OSインストール

Comice OSのインストールディスクイメージは公式サイトからダウンロードできます。今回はここミラーサイトからダウンロードしました。

ダウンロードしたisoイメージを焼き込んだDVD-RをMacBookに挿入して再起動します。Cを押しながら起動を待つとComice OSのインストーラが起動してきます。
ここで一番上の「install - Install the system」を選択します。


言語選択画面が出るのでお好みの言語を選びます。


上半分がインストール要件で、「ディスクが6.8GB以上空いていること」、「電源がつながっていること」、「インターネットに接続できること」の3つを求められます。残念ながらこの時点では僕が持っているMacBook内蔵の無線LANは認識されなかったので、有線LANを使いました。
下半分はOSインストール時のサードパーティソフトウェアのダウンロード設定です。ドライバの設定等で後々楽だと思いますのでチェックしておきます。


インストール先をざっくり聞かれます。ちゃんとMac OSが入っていることを認識していますね。Mac OSを消されてしまうと困るので、下の「Something else」にチェックを入れて「Continue」


sda1がMac OS、sda2がswap、sda3がComice OS用に用意しているパーティションです。以降で間違ってsda1を消してしまうとMacの再インストールが必要になるので注意しましょう。
ではsda2を選択して「Change...」ボタンを押します。


sda2はswap用なので「Use as」のところを「swap area」にして「OK」を押します。


次はsda3を選択して「Change...」


sda3はComice OS用なので「Use as」のところをExt4 journaling file system」にして「Format the partition」にチェックを入れます。「Mount point」「/」にして「OK」


ブートローダーのインストール先の指定です。当然ここもsda1を選んだらダメなので、sda3を選択して「Install Now」をクリックします。


タイムゾーンを聞かれます。日本に住んでいる方なら「Tokyo」でいいでしょう。


キーボードレイアウトを聞かれます。普通は「Japanese」でいいと思います。


ユーザ情報入力画面です。お好みの名前を入れます。


ユーザにひもづく画像を選びます。カメラが出てくるあたりがMac OSのインストール画面と似ています。


インストールが終了したので「Restart Now」ボタンを押して再起動。


ブート時の画面でリンゴの隣にペンギンが現れました。こいつを選んでエンターキーを押します。


grubの画面が出てきました。なぜかUbuntuと表示されていますが、一番上を選びます。


ユーザ選択画面が出てきました。先ほど登録したユーザを選んでログインします。


おおお、なかなかMac的ですね。MacBook内蔵の無線LANも認識できていました。ベータ版だからか若干アプリが落ちやすいような気がしますが、中々いい感じで使えています。

番外編

今回インストールしたComice OSはX86_64 Linuxですし、MacBook 2008年モデルのCore 2 Duoは仮想化支援機能を持っているので、KVMを使うことができます。
なのでMacBookにインストールしたMacLinux Comice OS上でWindowsを動かすという変態プレイも可能です(*´∀`*)。



KVM仮想化環境構築 - その4

KVMにもVMwareでいうところのvSphere Clinetに似たvirt-managerという管理ツールがあります。virt-manager仮想マシンの作成/削除、電源On/Off、ゲストOSのインストールなどをGUIで操作することができるLinuxソフトウェアです。今回はこれを使うための設定していきます。

virt-managerの起動まで(Xフォワーディング)

virt-manager自体は既にKVMホストにインストールされていますので、通常はそのまま起動させればいいのですが、構築しているKVMホストにはXサーバをインストールしていませんので、別マシンにXサーバを用意する必要があります。
今回はKVMホスト側のvirt-manager(Xクライアント)を別マシン上のモニタ(Xサーバ)に転送して使用することにします。いわゆるXを飛ばすというやつです。幸いMac OS XにはXサーバが元から入っているのでMacBookで余裕です。
mah@silvercat% ssh -l root -X 192.168.11.5
root@192.168.11.5's password:
Last login: Sun Feb 12 15:46:40 2012 from 192.168.11.2
[root@cathouse ~]# virt-manager
Traceback (most recent call last):
File "/usr/share/virt-manager/virt-manager.py", line 383, in
main()
File "/usr/share/virt-manager/virt-manager.py", line 286, in main
raise gtk_error
RuntimeError: could not open display
あれ(´;ω;`)

KVMホストにxauthが入ってませんでした。

[root@cathouse ~]# xauth
-bash: xauth: command not found
yumでxauthをインストール。
[root@cathouse ~]# yum install xauth
Loaded plugins: fastestmirror, security
base | 3.7 kB 00:00
base/primary_db | 4.5 MB 00:00
extras | 3.5 kB 00:00
extras/primary_db | 6.3 kB 00:00
updates | 3.5 kB 00:00
updates/primary_db | 1.2 MB 00:00
Setting up Install Process
Resolving Dependencies

    • > Running transaction check
      • > Package xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6 will be installed
    • > Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
xorg-x11-xauth x86_64 1:1.0.2-7.1.el6 base 35 k

Transaction Summary
================================================================================
Install 1 Package(s)

Total download size: 35 k
Installed size: 62 k
Is this ok [y/N]: y
Downloading Packages:
xorg-x11-xauth-1.0.2-7.1.el6.x86_64.rpm | 35 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key)
Package: centos-release-6-2.el6.centos.7.x86_64 (@anaconda-CentOS-201112091719.x86_64/6.2)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 1:xorg-x11-xauth-1.0.2-7.1.el6.x86_64 1/1

Installed:
xorg-x11-xauth.x86_64 1:1.0.2-7.1.el6

Complete!

再接続します。
mah@silvercat% ssh -l root -X 192.168.11.5
root@192.168.11.5's password:
Last login: Sun Feb 12 16:01:15 2012 from 192.168.11.2
/usr/bin/xauth: creating new authority file /root/.Xauthority
[root@cathouse ~]# virt-manager
Xlib: extension "RANDR" missing on display "localhost:10.0".
ヽ(*゚∀゚*)ノ


ただしMacのXサーバ上でvirt-managerを使う方は以下の設定をしておかないと仮想マシンの操作画面から抜けられなくなるので注意が必要です。

mah@silvercat% vi ~/.Xmodmap
clear Mod1
keycode 66 = Alt_L
keycode 69 = Alt_R
add Mod1 = Alt_L
add Mod1 = Alt_R
Windows環境しか無い方でもXmingを使って同様のことを実現できるはずです。

今回は別でLinuxマシンを用意できない&KVMホストが1台だったためXフォワーディングを使いましたが、Linuxマシンを用意できる方はそのLinuxマシンにvirt-managerをインストールし、KVMホストへ接続するのが自然だと思います。

virt-managerの設定

virt-manager仮想マシンのディスクを配置するための領域の設定をします。
メニューの「Edit」から「Connection Details」を開き、「Storage」タブをクリック後、画面左下の「」ボタンを押します。


Name」には領域に付けたい適当な名前を、「Type」には「dir: Filesystem Directory」を指定し、「Forward」ボタンを押します。


領域のパスを聞かれるので、「Browse」ボタンを押します。


前回マウントしたハードディスクのパスを指定し、「Open」ボタンを押します。


Finish」を押したら終了です。


仮想マシンを作成するときは今回作成したこの領域に仮想マシンの仮想ディスクを配置することにします。


これで準備が整いました。次回はようやく仮想マシンの作成に入ります。

KVM仮想化環境構築 - その3

CentOSをインストールしたので、次はネットワークとストレージの設定をします。

ネットワーク設定

せっかくNICが2つあるのでbondingを試してみます。いや寧ろbondingしたくて余分にNIC買いました(゚∀゚)。
イメージとしては下の絵のように構成します。eth[0-1]は物理NIC、bond0はbondingインターフェース、br0は仮想ブリッジ、vnet*は仮想マシン用の仮想NICです。この構成にした場合、ゲストOSはホスト側と同一セグメントのネットワークを利用できます。
vnetは仮想マシンと同じタイミングで作成されるものなので今回はeth、bond、brだけ作ります。


NetworkManagerはKVMで使うブリッジと相性が合わないのでインストールされている場合は無効にします。

[root@cathouse ~]# chkconfig NetworkManager off
[root@cathouse ~]# chkconfig network on
[root@cathouse ~]# service NetworkManager stop
eth0の設定ファイル編集。CentOS(RHEL)では6系からMACアドレスを別ファイル(/etc/udev/rules.d/70-persistent-net.rules)で管理するようになったのでHWADDRは書かなくて大丈夫です。
[root@cathouse ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO="none"
MASTER="bond0"
SLAVE="yes"
eth1の設定ファイル編集。ほぼ同じですね。
[root@cathouse ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT="yes"
BOOTPROTO="none"
MASTER="bond0"
SLAVE="yes"
続いてbond0の設定ファイル編集。ここではbondingのモードを6に指定しています。このモードではNICの負荷に応じて送信や受信で使用されるインターフェースを切り替えてくれます。ごついネットワーク環境を持っていない方はモード1、5、6あたりが無難です。詳しく知りたい方はこことか見てみましょう。
[root@cathouse ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE="bond0"
ONBOOT="yes"
BOOTPROTO="none"
BONDING_OPTS="mode=6 miimon=100 updelay=5000"
BRIDGE="br0"
次はbr0の設定ファイル編集です。アドレスを固定で指定しています。この部分は環境に合わせて変えてください。
[root@cathouse ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="192.168.11.5"
NETMASK="255.255.255.0"
GATEWAY="192.168.11.1"
NETWORK="192.168.11.0"
BROADCAST="192.168.11.255"
TYPE="Bridge"
DHCPでアドレスの自動設定をしたい場合は下のようにします。
DEVICE="br0"
ONBOOT="yes"
BOOTPROTO="dhcp"
TYPE="Bridge"
ちなみにここでbr0にIPアドレスを与えるのは必須ではありません。IPアドレスを与えなかった場合、ホストへのネットワークアクセスはできなくなりますが、それでもゲストOSにIPアドレスをふったりインターネットにアクセスさせることはできます。

続いてカーネルモジュール設定

[root@cathouse ~]# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
設定ファイルの編集が終わったので、ネットワークサービスを再起動します。
[root@cathouse ~]# service network restart
Shutting down interface br0: [ OK ]
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Bringing up interface br0: [ OK ]
bondingがうまくいっているか確認。
[root@cathouse ~]# cat /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: adaptive load balancing
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 5000
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 98:4b:e1:06:c3:cd
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1b:21:c5:f1:15
Slave queue ID: 0

大丈夫そうです。ping打ってみたり片系のネットワークケーブル抜いてみたりして正しく構成されているか確認してみましょう。

ホストにDNSの参照先を指定していなかったのでresolv.confを編集します。今回はGoogleDNSサーバを指定してみました。

[root@cathouse ~]# vi /etc/resolv.conf 
nameserver 8.8.8.8
nameserver 8.8.4.4
ネットワークの設定おしまい。

ストレージ設定

まずはハードディスクが認識されているか確認。
[root@cathouse ~]# parted -l
Model: ATA WDC WD20EARS-00M (scsi)   ←これと
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags


Model: ATA WDC WD20EARS-00M (scsi)   ←これ
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags


Model: I-O DATA USB Flash Disk (scsi)
Disk /dev/sdc: 8020MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 1049kB 525MB 524MB primary ext4 boot
2 525MB 8020MB 7494MB primary lvm


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_cathouse-lv_swap: 3746MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number Start End Size File system Flags
1 0.00B 3746MB 3746MB linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg_cathouse-lv_root: 3746MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number Start End Size File system Flags
1 0.00B 3746MB 3746MB ext4

無事に2つとも認識されているようです。続いてパーティションを作成します。
[root@cathouse ~]# parted /dev/sda
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart 1 ext4 1 -1   ←ディスク(ほぼ)全部を使ってパーティション作成
(parted) quit
Information: You may need to update /etc/fstab.
作成したパーティションをフォーマットします。ファイルシステムext4
2TBもあると中々時間かかりますね。
[root@cathouse ~]# mkfs.ext4 /dev/sda1 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
122101760 inodes, 488378112 blocks
24418905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14905 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

パーティションのUUIDを確認。
[root@cathouse ~]# blkid /dev/sda1
/dev/sda1: UUID="00680288-1a0f-49b2-b2d2-6219b8ab47c7" TYPE="ext4"
マウント先のディレクトリを作成。
[root@cathouse ~]# mkdir /mnt/kvmdata
fstabに設定を追記。UUIDのところは先ほどblkidで調べたものをコピペします。
[root@cathouse ~]# echo UUID=00680288-1a0f-49b2-b2d2-6219b8ab47c7 /mnt/kvmdata ext4 defaults 0 0 >> /etc/fstab
fstabに書き込んだ設定を反映。
[root@cathouse ~]# mount -a
正常にマウントされました。これでストレージの設定は終了です。
[root@cathouse ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cathouse-lv_root
3.5G 3.0G 346M 90% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/sdc1 485M 63M 398M 14% /boot
/dev/sda1 1.8T 196M 1.7T 1% /mnt/kvmdata
RedhatKVMによる仮想化環境ではI/Oスケジューラの設定をdeadlineにすることを推奨しています。ちなみに初期状態はcfq。
[root@cathouse ~]# cat /sys/block/sda/queue/scheduler 
noop anticipatory deadline [cfq]
変更するにはgrub.confファイルを編集します(下の赤字部分を追記)。
[root@cathouse ~]# vi /boot/grub/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_cathouse-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sdc
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_cathouse-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_cathouse/lv_root rd_NO_MD rd_LVM_LV=vg_cathouse/lv_swap SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 quiet rd_NO_DM elevator=deadline
initrd /initramfs-2.6.32-220.el6.x86_64.img
再起動することでdeadlineに変更されます。
[root@cathouse ~]# cat /sys/block/sda/queue/scheduler 
noop anticipatory [deadline] cfq
次回はvirt-manager(vSphere Clientみたいなもの)の準備です。

KVM仮想化環境構築 - その2

ではCentOS6.2のインストールです。サーバ仮想化環境のハイパーバイザとして利用するため、WebブラウザやOffice系ソフトなどのデスクトップ環境はインストールしないことにします。好みもあると思いますので、必要な方は入れてしまっても問題ありません。


サーバ起動直後の状態。上下キーで一番上か二番目にカーソルを当ててenter。


メディアをチェックするかどうかを聞かれます。チェックしてもいいですが、今回はISOイメージファイルを直接マウントしているので不要でしょう。


ここからマウスが使えます。「Next」をクリックして次へ。


インストーラが表示する言語を選びます。お好みの言語で。


キーボードの配置を選びます。ほとんどの方は「Japanese」で大丈夫なはずです。


インストール先のディスクデバイスの種類を選びます。FCoEやiSCSIなどを使っていない、もしくはどちらか分からない場合は「Basic Storage Devices」で大丈夫です。


コンピュータのホスト名を聞かれています。好きな名前を入れましょう。


タイムゾーンを聞かれています。日本国内に住んでいるなら「Asia/Tokyo」を選びましょう。


root(コンピュータの管理者アカウント)のパスワードを設定します。入力したパスワードは忘れないようにしましょう。


ストレージデバイスをどのように使ってCentOSをインストールするか聞かれています。今回はUSBメモリを全部使ってインストールしますので「Use All Space」。を選択します。パーティションの切り方にこだわりがある方は適宜他の選択肢を選んでください。


どのデバイスにインストールするかを聞かれています。ハードディスクにはインストールせずUSBメモリにインストールするので、「Install Target Devices」側にUSBメモリが表示されるように設定します。


USBメモリ上にデータがあったら消しちゃうよと言っています。消してもらっても大丈夫なので「Write changes to disk」をクリックします。


CentOSをどのような用途で使うかを聞かれています。今回はハイパーバイザとして使う予定ですので、「Virtual Host」を選択します。また、追加のソフトウェアをインストールしたいので一番下のところで「Customize now」にチェックを入れておきます。


左で「Virtualization」を選択し、右の項目すべてにチェックをいれます。またそのとき項目名を右クリックし「Select all optional packages」ですべてのパッケージを入れておきます。


インストールが開始されました。結構かかるのでしばらく放置。


インストールが終わりました。「Reboot」を押して再起動させましょう。


再起動後の画面です。X(デスクトップ環境)をインストールしていないのでキャラクタベースになっています。


KVMモジュールがロードされているのを確認します。

[root@cathouse ~]# lsmod | grep kvm
kvm_amd 40318 0
kvm 305081 1 kvm_amd
次回はネットワークとストレージの設定をします。

KVM仮想化環境構築 - その1

MicroServerにLinux KVMをインストールしてサーバ仮想化環境を構築します。KVMカーネルモジュールとしてLinuxに取り込まれているため、基本的にどのディストリビューションを選択してもいいのだと思いますが、今回はエンタープライズで使用されているRHELをベースとしたCentOSをインストールすることにします。

CentOSイメージの入手

CentOSRedhatRHELとバイナリ互換性のある無償OSです。最近は開発が遅れ気味と言われていますが、最新バージョンの6.2はRHELリリース後わずか2週間で提供が開始されています。

CentOSのISOイメージは世界中のミラーサイトからダウンロード可能ですが、日本国内のサイトからダウンロードするのがいいでしょう。ミラーサイトによってはDVDイメージが無いところもあるので注意です。
ちなみに僕は北陸先端科学技術大学院大学からダウンロードしました。ダウンロード後には念のためmd5やshaでハッシュ値を確認しておくといいでしょう。

% md5 CentOS-6.2-x86_64-bin-DVD1.iso
MD5 (CentOS-6.2-x86_64-bin-DVD1.iso) = 26fdf8c5a787a674f3219a3554b131ca

インストール先はUSBメモリ

インストール先はハードディスクでもいいのですが、ハードディスクはすべてデータ領域として使いたいので今回はUSBメモリにインストールすることにします。
MicroServerは前面に4つ背面に2つのUSBポートを持っていますが、実は筐体内にももう1つあります。ここがじゃまにならなくていいので、ここを使います。
USBメモリはなんでもいいと思いますが、あまり容量が小さいとCentOSのインストールができないのでそこそこのものを用意する必要があります。ちなみに僕は8GBのものを使いましたが結構ギリなので16GBくらいあった方がいいかもしれません。

HPリモートアクセスカード

通常ならこの後イメージファイルをDVD-Rへ焼き込む作業が必要になりますが、MicroServerと一緒に買ったリモートアクセスカードを使えば、ISOイメージをファイルのまま直接サーバにマウントさせることができます。便利^^。

リモートアクセスカードのIPアドレス(初期設定ではDHCPから取得)に別マシンのWebブラウザからアクセスするとサーバの管理画面にログインできます。ちなみにfirefoxchromeからは利用できませんでした(#`3´#)。
初期ユーザIDはadmin、初期パスワードはpasswordです。初回ログイン後に変えておくといいと思います。


ログイン後、管理画面の左メニュー内「vKVM&vMedia」をクリックすると仮想KVMを操作するためのボタンが現れます。「Launch KVM Viewr」が仮想的なモニタ、「Launch VM Viewr」が仮想的なDVDドライブにあたります。


サーバの電源を入れない状態で仮想モニタを起動すると下の画像のようにOut of Rangeと緑色の画面に表示されますがこれで正常です。


続いて仮想DVDドライブの「Add Image...」ボタンを押してダウンロードしたCentOS6.2のイメージファイルを指定します。


この状態で管理画面の左メニュー内「Server Information-Power-Control」をクリックし、右画面内の「Power On System」にチェックを入れて「Apply Changes」ボタンを押すとサーバの電源が入り起動が始まります。


KVMはCPUのサーバ仮想化機能(AMD-VまたはIntel-VT)が前提のソフトウェアですので、サーバ側で有効になっていない場合はBIOS画面から有効にする必要があります。
サーバ起動時のメニューで「F10キー」を押しBIOSのセットアップユーティリティに入り、「Advanced」「CPU Configuration」「Secure Virtual Machine Mode」「Enabled」にしておいてください。


次回はCentOS6.2をインストールします。