目录

虚拟机学习平台的搭建

在这个“并行计算、分布式计算、云计算、虚拟化、大数据……“等等的爆炸时代,手里的那么一两台机器确实越来越难以满足需要了。一般个人,也不大可能拥有自己的数据中心,超算环境。怎么办?很自然的,就想到了用虚拟机来模拟。

今日的虚拟化技术已用于生产环境,搭个学习平台就更不在话下了,本文讲述该平台的硬件准备过程。

硬件

要让一台家用计算机能较为顺畅的运行多个虚拟机,硬件上的考虑大概如下几点:

综上,我的硬件平台选型如下:

  1. CPU,AMD FX 6100六核;
  2. 内存,4GX4=16G DDR3 1600;
  3. 硬盘,一块旧硬盘装系统,另购四块新2T硬盘组阵列,用于数据备份和存储虚拟机文件;
  4. 网络,主板集成千兆网卡一块。

软阵列

这里使用软阵列(Soft RAID)来组阵列,而不是使用主板提供的硬阵列实现。组建RAID5至少需要三块硬盘,可能的话自然多多益善。

阵列共两组,一组存放虚拟机映像,一组存放原始安装数据和备份数据。由于这是个学习环境,所以第一组大胆的使用RAID0模式,放弃可靠性,追求最大的吞吐率,第二组使用RAID5模式。

下面的具体操作基于CentOS 6,不同系统下可能略有差别,但不大。

分区

这里使用parted工具来分区。由于这几块新2T硬盘都是4K扇区格式,涉及分区对齐问题,CentOS下有关parted与4k扇区硬盘的说明,可参考 Red Hat Enterprise Linux 5 and 4 kilobyte sector disks

个人采用参考链接的方法,以1MB(2048个扇区)为单位划分,分区的起始扇区是2048的整数倍,结束扇区是2048的整数倍减1。硬盘的最后留100M左右的空闲空间,以应对将来更换硬盘时,新硬盘和旧硬盘在容量上可能存在的细微差别。

此外,传统的msdos分区表格式只能支持最大2T的硬盘,为了后续可能的扩容做准备,这次的新硬盘统一采用gpt分区表格式。

下面是parted的操作步骤(以/dev/sde为例,四块硬盘的分区表都是一样的):

(parted) mklabel gpt
(parted) mkpart 1 2048s 858994687s
(parted) mkpart 2 858994688s 3906822143s
(parted) toggle 1 raid
(parted) toggle 2 raid
(parted) unit s
(parted) p
Model: ATA ST2000DM001-1CH1 (scsi)
Disk /dev/sde: 3907029168s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start       End          Size         File system  Name  标志
 1      2048s       858994687s   858992640s                1     raid
 2      858994688s  3906822143s  3047827456s               2     raid

如果使用fdisk对硬盘进行分区,需要使用如下参数(新版本的fdisk已解决了这个问题):

fdisk -H 224 -S 56 /dev/sde

创建阵列

mdadm --create /dev/md0 --level 0 --raid-devices 4 /dev/sd[bcde]1
mdadm --create /dev/md1 --level 5 --raid-devices 4 /dev/sd[bcde]2

初始化raid5的时间比较长(本机花了四个半小时),需要耐心等候,进度可查看/proc/mdstat获得:

cat /proc/mdstat

建立文件系统

这里使用EXT4文件系统:

mkfs.ext4 /dev/md0
mkfs.ext4 /dev/md1

挂载文件系统

建立挂载目录:

mkdir /raid0
mkdir /raid5

编辑/etc/fstab,使用uuid的方式挂载(文件系统的uuid可以在/dev/disk/by-uuid/下查到):

UUID=b9fac28f-b218-4a29-b582-b680e09abedc  /raid0  ext4  defaults  1  2
UUID=252a485e-211e-4ac8-87b1-827239f60006  /raid5  ext4  defaults  1  3

如果想进一步提高灵活性,可以在阵列基础上使用逻辑卷LVM。