====== 虚拟机学习平台的搭建 ====== 在这个“并行计算、分布式计算、云计算、虚拟化、大数据......“等等的爆炸时代,手里的那么一两台机器确实越来越难以满足需要了。一般个人,也不大可能拥有自己的数据中心,超算环境。怎么办?很自然的,就想到了用虚拟机来模拟。 今日的虚拟化技术已用于生产环境,搭个学习平台就更不在话下了,本文讲述该平台的硬件准备过程。 ===== 硬件 ===== 要让一台家用计算机能较为顺畅的运行多个虚拟机,硬件上的考虑大概如下几点: * 多CPU架构,不大容易,用个多核的家用CPU代替; * 大内存,这个可以有; * I/O(主要是存储),用几块硬盘组个阵列; * 网络,至少一块千兆网卡吧。 综上,我的硬件平台选型如下: - CPU,AMD FX 6100六核; - 内存,4GX4=16G DDR3 1600; - 硬盘,一块旧硬盘装系统,另购四块新2T硬盘组阵列,用于数据备份和存储虚拟机文件; - 网络,主板集成千兆网卡一块。 ===== 软阵列 ===== 这里使用软阵列(Soft RAID)来组阵列,而不是使用主板提供的硬阵列实现。组建RAID5至少需要三块硬盘,可能的话自然多多益善。 阵列共两组,一组存放虚拟机映像,一组存放原始安装数据和备份数据。由于这是个学习环境,所以第一组大胆的使用RAID0模式,放弃可靠性,追求最大的吞吐率,第二组使用RAID5模式。 下面的具体操作基于[[http://www.centos.org/|CentOS 6]],不同系统下可能略有差别,但不大。 ==== 分区 ==== 这里使用parted工具来分区。由于这几块新2T硬盘都是4K扇区格式,涉及分区对齐问题,CentOS下有关parted与4k扇区硬盘的说明,可参考[[https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/5.6_Technical_Notes/ch03.html | 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。 {{tag>虚拟化}}