从零开始配置基于 openSUSE 12.3 的 KVM 虚拟化服务器 - 安装、内核与存储配置

首先晒一下机器:
IBM x3850 X5, CPU 共 32 核心 64 线程,内存 128G,300G 10k rpm SAS 两块,外接光纤通道存储,分配了 1TB。
我用 openSUSE 的目的: KVM 虚拟化,因为我能通过 Build Services 拿到较新/最新的内核。

从光盘启动后,看到的菜单与一般使用 BIOS 的计算机不同,只有三项,没有内存检测。

以下是详细内容:
1. 分区:选择 LVM 管理分区,默认配置下来,到了 Boot Loader 这一步,告诉我“Because of the partitioning, the boot loader cannot be installed properly.”。
默认配置的分区是这样的:156M 的 EFI Boot 挂载在 /boot/efi ,剩余空间新建了一个 280GB+ 的 VG,其中 root LV 给了 20G。
一路安装下来,进到系统里面,开 YaST 的 Boot Loader,问题依旧。其实也不影响正常使用,就是不爽。

遂重装,多次试验之后,LVM 之外单独划分 /boot 分区,问题消失。

2. 换内核:上面说到我是为了新内核采用 openSUSE 的,找到 Kernel::Stable,执行以下命令添加 repo

zypper ar --refresh http://download.opensuse.org/repositories/Kernel:/stable/standard Kernel:stable

为了给自己留条后路,万一新装的内核不好用呢?
参考 doc.opensuse.org/documentation/html/openSUSE/opensuse-tuning/cha.tuning.multikernel.html 开启多内核支持
列出所有内核:

zypper se -s kernel-default

安装新内核:

zypper in kernel-default-3.8.5-1.1

重启后自动使用新内核,验证:

uname -a

输出:Linux xxxxxx.xxx.edu.cn 3.8.5-1-default #1 SMP Thu Mar 28 23:15:30 UTC 2013 (2178322) x86_64 x86_64 x86_64 GNU/Linux
3. 光纤存储的多路径配置:
首先载入多路径的内核模块:

modprobe dm-multipath

查看系统中可配置的多路径设备:

multipath -v2 -d

参数释义:verbosity 2,dry-run

上面命令的输出:

# multipath -v2 -d
create: 3xxxxxxxxxxxxxxxxxxx undef IBM     ,ServeRAID M5015
size=278G features='0' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=1 status=undef
  `- 0:2:0:0 sda 8:0  undef ready running
create: 3xxxxxxxxxxxxxxxxxxx undef IBM     ,ServeRAID M5015
size=929G features='0' hwhandler='0' wp=undef
`-+- policy='service-time 0' prio=1 status=undef
  `- 0:2:1:0 sdb 8:16 undef ready running
create: 1HITACHI_XXXXXXXXXXX undef HITACHI ,DF600F
size=1000G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 3:0:0:0 sdc 8:32 active ready running
  `- 4:0:0:0 sdd 8:48 active ready running

结合系统实际情况和上述输出,sda 和 sdb 都是机内 RAID 硬盘,sdc 和 sdd 是外接存储的两条路径(multipath的由来),远程设备是日立 DF600F 阵列。

如果直接启用 multipath,比如说在系统安装分区时启用,则会造成混乱,包括两个机内硬盘也会作为 multipath 设备配置。我们并不想让这样的事情发生,所以要将两个硬盘加入 multipath.conf 中定义的“黑名单”中。

在 /etc 创建 multipath.conf 文件,仅包含以下内容,使用前请根据自己机器配置更改:

blacklist {
        device {
                vendor "IBM"
                product "ServeRAID M5015"
        }
}

详细的配置参考在 /usr/share/doc/packages/multipath-tools/multipath.conf.annotated

运行 multipath -v3 -d,在输出中可以看到:Apr 04 06:33:58 | (null): (IBM :ServeRAID M5015 ) vendor/product blacklisted。说明机内 RAID 卡上的硬盘已经被加入黑名单,不会对我们的配置产生干扰。

要使多路径服务正常运行,需要启用 multipathd 服务。步骤如下:

# systemctl enable multipathd # 下次开机自动启动服务
# systemctl start multipathd # 现在启动服务
# systemctl restart multipathd # 更改配置后需要重启服务

要使系统开机时能正确识别 multipath 设备,需要加载驱动到 initrd 中,有两种方法:
一 官方说明是在 /etc/sysconfig/kernel 中 INITRD_MODULES 中添加 dm-multipath,执行 mkinitrd
二 经过试验,完成上述配置后直接执行 mkinitrd 即可。要观察其输出的 Kernel Modules 中是否包含 dm-multipath 模块。

如果重启后出现 Found duplicate PV 字样,可修改 /etc/lvm/lvm.conf 中的 filter,我改成了这个样子:

filter =  "a|/dev/sda.*|", "a|/dev/sdb|",  "a|/dev/mapper/.*|", "r/.*/" ]

需要提醒的是,改了之后要运行 pvscan 和 lvscan,而且这个错误提示可以安全地忽略,不会影响系统运行。

1赞

好讚!你写完我给分的。

bootloader 那里你要是看我的帖子给你那个 wiki 或 releasenote 你就明白了。

这么提示是怕你的 LVM 是加密的。于是你就把自己关在外面了(boot 在里面),于是就赖上 openSUSE 了。

其实我主要是来晒机器的 :sunglasses:

土豪 :scream:

管理员能不能把这篇移动到服务器版面啊?
我想开连载了。

在虚拟化版面。

我有洁癖,Opensuse12.3 装在 Dell 1950 III 上会报 BIOS 错误。所以最后折腾回 SLES,用了那些老旧的包。