比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

目次
minLevel2

...

10.04

...

The biggest change from 10.04 is that "server" flavour has been removed.
Ubuntu server now uses the "generic" flavour, the same kernel used in desktop edition.

Differences between server and generic flavours were described here.

Build our own server flavour

We need "server" flavour for 12.04 for best performance.
To build our own server flavour of the kernel, follow instructions below.

...

以降の大きな変更

一番大きい変更は server フレバーがなくなって、デスクトップ版と同じ generic カーネルだけになったこと。
もともとあった違いはここにまとまっているが、割り込み制御や I/O スケジューラーなどが異なっている。 

server フレバーを自力でビルドする

ベストパフォーマンスのためにカーネルは自前でビルドすることにしましょう。

参考資料:

...

環境の準備

書式設定済み
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo reboot
(make sure the system is running the latest kernel)
$ sudo apt-get install build-essential

...

カーネルソースをダウンロード

書式設定済み
$ apt-cache search linux-image-3 virtual | sort | tail -1 | sed 's/-virtual.*$//'
linux-image-3.2.0-25
$ sudo apt-get build-dep linux-image-3.2.0-25-generic
$ apt-get source linux-image-3.2.0-25-generic

...

設定を編集

書式設定済み
$ cd linux-3.2.0/debian.master/config/amd64
$ cp config.flavour.generic config.flavour.server
$ vi config.flavour.server
(change I/O scheduler from CFQ to deadline.  Disable voluntary preemption.)
$ cat config.flavour.server
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_DEADLINE=y
CONFIG_DEFAULT_IOSCHED="deadline"
CONFIG_INTEL_IDLE=y
CONFIG_NR_CPUS=256
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
$ sed -i 's/^CONFIG_HZ=250/CONFIG_HZ=100/' config.common.amd64
$ cd ..
$ vi config.common.ubuntu
(Edit HZ like this)
CONFIG_HZ_100=y
# CONFIG_HZ_1000 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
$ cd ../..
$ chmod -R a+x debian/scripts/*
$ ./debian/rules updateconfigs
$ cd debian.master
$ vi etc/getabis
(append server flavour to amd64 arch like this)
getall amd64 generic virtual server
$ vi rules.d/amd64.mk
(append server flavour to list of flavours like this)
flavours        = generic virtual server
$ cp control.d/vars.generic control.d/vars.server
$ vi control.d/vars.server
(edit as you like)
$ diff -u control.d/vars.generic control.d/vars.server 
--- control.d/vars.generic      2012-05-30 06:41:02.000000000 +0000
+++ control.d/vars.server       2012-05-30 07:02:14.952238628 +0000
@@ -1,6 +1,6 @@
 arch="i386 amd64"
-supported="Generic"
-target="Geared toward desktop and server systems."
+supported="Server"
+target="Geared toward server systems."
 desc="=HUMAN= SMP"
 bootloader="grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1)"
 provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9"
$ cd ..

Apply patches

Apply a patch for LIO iSCSI target.
Obtain the patch from gist.github.com.

Build packages

独自パッチを適用

LIO のパッチとか。

ビルド

書式設定済み
$ fakeroot debian/rules clean
$ skipabi=true skipmodule=true fakeroot debian/rules binary-indep
(this will build kernel header package)
$ DEB_BUILD_OPTIONS=parallel=8 skipabi=true skipmodule=true fakeroot debian/rules binary-server
(this will build kernel image package)
$ ls ../*.deb
../linux-doc_3.2.0-24.38_all.deb
../linux-headers-3.2.0-24_3.2.0-24.38_all.deb
../linux-headers-3.2.0-24-server_3.2.0-24.38_amd64.deb
../linux-image-3.2.0-24-server_3.2.0-24.38_amd64.deb
../linux-source-3.2.0_3.2.0-24.38_all.deb
../linux-tools-common_3.2.0-24.38_all.deb

Save linux-headers-*.deb and linux-image-*.deb packages.

...

インストール

書式設定済み
$ sudo apt-get -y purge linux-image-$(uname -r)
$ sudo apt-get autoremove --purge
$ sudo dpkg -i linux-headers-*.deb linux-image-*.deb

...

バグ

BDI flusher threads stop working

...