您的位置:首页 > 其它

基于LVM的Xen的部署(一)

2015-07-11 16:47 323 查看
对于Xen部署虚拟机,生产应用中最常用的是基于LVM的部署应用,利用LVM的Online扩在性,可灵活的伸缩虚拟机的存储大小特点可以高效灵活的部署Xen的虚拟机。这里我在VMware添加了一块新的硬盘做LVM。

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00052228

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39        2358    18631680   83  Linux
/dev/sda3            2358        2611     2031616   82  Linux swap / Solaris

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


这里的我的硬盘/dev/sdb还没有使用,这里我们先分区,这里我将整个硬盘分为4个分区,应为在生产用于一款机型中戴尔的机器通常是用过四块硬盘,每块硬盘分四个分区,然后四块硬盘在组成一个RAID10,这里我就不在那么复杂了不在创建raid,为了省事我只是创建LVM。操作步骤如下:

[root@localhost ~]# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 326


然后创建完四个分区后,需要修改分区的类型标识,这是创建LVM前的必须操作:

[root@localhost ~]# fdisk /dev/sdb
Command (m for help): t
Partition number (1-4): 1,2,3,4
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
[root@localhost ~]# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         326     2618563+  8e  Linux LVM
/dev/sdb2             327         653     2626627+  8e  Linux LVM
/dev/sdb3             654         980     2626627+  8e  Linux LVM
/dev/sdb4             981        1305     2610562+  8e  Linux LVM


着手开始创建LVM,将四个分区添加到 一个VG里,我将创建两virtual machine,并且利用LVM的在线的扩展性,能很好的实现将来虚拟机的可扩展性。

[root@localhost ~]# pvcreate /dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
Physical volume "/dev/sdb4" successfully created
[root@localhost ~]# pvscan
PV /dev/sdb1                      lvm2 [2.50 GiB]
PV /dev/sdb2                      lvm2 [2.50 GiB]
PV /dev/sdb3                      lvm2 [2.50 GiB]
PV /dev/sdb4                      lvm2 [2.49 GiB]
Total: 4 [10.00 GiB] / in use: 0 [0   ] / in no VG: 4 [10.00 GiB]
[root@localhost ~]# vgcreate -s 4M Xen_DomainLVM /dev/sdb{1,2,3,4}
#这里可以选择所创建的PE的大小,在生产应用中可以根据不同的业务来设置不同的PE大小,默认为4M大小。
Volume group "Xen_DomainLVM" successfully created
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name               Xen_DomainLVM
System ID
Format                lvm2
Metadata Areas        4
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                4
Act PV                4
VG Size               9.99 GiB
PE Size               4.00 MiB
Total PE              2558
Alloc PE / Size       0 / 0
Free  PE / Size       2558 / 9.99 GiB
VG UUID               qXP8jM-mDF5-hDCv-0tKn-yJNY-x63v-8n0sgA
[root@localhost ~]# lvcreate -l 100 -n Domain_1_LVM Xen_DomainLVM
Logical volume "Domain_1_LVM" created
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path                /dev/Xen_DomainLVM/Doamin_2_LV
LV Name                Doamin_2_LV
VG Name                Xen_DomainLVM
LV UUID                SbwZ68-VeT3-Bx3Y-I0o1-bsVq-tiOG-O2FjdU
LV Write Access        read/write
LV Creation host, time localhost.localdomain, 2015-07-10 03:05:08 -0700
LV Status              available
# open                 0
LV Size                400.00 MiB
Current LE             100
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:1


创建好LVM后,就分区Format文件系统和LV 的挂载了,这些应该都是比较简单的步骤,所以这里就不在做详细的代码演示,只列出需要输入的命令。

[root@localhost ~]# mkfs -t ext4 /dev/Xen_DomainLVM/Doamin_2_LV
[root@localhost ~]#mkdir /mnt/lvm;mount /dev/Xen_DomainLVM/Doamin_2_LV /mnt/lvm
[root@localhost ~]# mkfs -t ext4 /dev/Xen_DomainLVM/Domain_1_LV
[root@localhost ~]# mount /dev/Xen_DomainLVM/Domain_1_LVM /mnt/lvm2
[root@localhost ~]# df -h
Filesystem                              Size  Used Avail Use% Mounted on
/dev/sda2                                18G  2.6G   14G  16% /
tmpfs                                    81M     0   81M   0% /dev/shm
/dev/sda1                               283M   69M  195M  27% /boot
/dev/mapper/Xen_DomainLVM-Doamin_2_LV   380M  2.3M  354M   1% /mnt/lvm
/dev/mapper/Xen_DomainLVM-Domain_1_LVM  380M  2.3M  354M   1% /mnt/lvm2


下面才是开始正式的工作,上面浪费这么多时间写一些废话,一是方便哪些对相关知识不太熟悉的,还有就是自己加深一下记忆,好久没有用过了,也就是当初学了一下相关的知识,没有真正的用到过。废话不多说正式开始Xen 的guest OS的安装,guest OS的无法直接使用CD安装盘来安装,那么就只能用网络安装,具体实现方式有httpd,nfs,ftp等,我们这里介绍两种方法httpd和nfs,为什么浪费时间使用两种方法,而不是直接使用一种方法也是帮助自己回忆一下相关的知识,这里我们先使用nfs实现Domain1的安装部署,我这里使用的Tinycore的Linux系统,应为是在VMware虚拟化安装Centos6.5,然后又在Centos上虚拟化安装一个操作系统,对硬件的占用会比较大,所以这里就只是实现Xen的guest OS的安装和简单的实验,不在虚拟机上实现其他大型的服务啦。

第一步是nfs的安装,默认系统都会安装nfs服务,当然如果没有安装使用过yum安装也是非常省事快捷的。

1、NFS简介

NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

[root@localhost ~]# yum install portmap nfs-utils
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Package rpcbind-0.2.0-11.el6.x86_64 already installed and latest version
Package 1:nfs-utils-1.2.3-54.el6.x86_64 already installed and latest version
Nothing to do
#这里我是最新的版本我就不在进行安装了
[root@localhost ~]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
#关闭防火墙
[root@localhost ~]# setenforce 1


启动NFS守护进程

nfsd:它是基本的NFS守护进程,主要功能是管理客户端是否能够登录服务器;

mountd:它是RPC安装守护进程,主要功能是管理NFS的文件系统。当客户端顺利通过nfsd登录NFS服务器后,在使用NFS服务所提供的文件前,还必须通过文件使用权限的验证。它会读取NFS的配置文件/etc/exports来对比客户端权限。

portmap:主要功能是进行端口映射工作。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,portmap会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

下面进行操作,首先是启动nfs服务

[root@localhost ~]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]


其次是配置NFS服务,NFS的常用目录

/etc/exports NFS服务的主要配置文件

/usr/sbin/exportfs NFS服务的管理命令

/usr/sbin/showmount 客户端的查看命令

/var/lib/nfs/etab 记录NFS分享出来的目录的完整权限设定值

/var/lib/nfs/xtab 记录曾经登录过的客户端信息

NFS服务的配置文件为 /etc/exports,这个文件是NFS的主要配置文件,不过系统并没有默认值,所以这个文件不一定会存在,可能要使用vim手动建立,然后在文件里面写入配置内容。

[root@localhost ~]# mount -o loop -t iso9660 /dev/cdrom /mnt/cdrom
[root@localhost ~]# echo '/mnt/cdrom/ 192.168.71.0/24(rw)' >> /etc/exports
#将所要挂载镜像文件路劲写入到nfs的配置文件
[root@localhost ~]# mount 192.168.71.130:/mnt/cdrom /tmp/cdrom
#挂载镜像文件
[root@localhost ~]# mount |grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
192.168.71.130:/mnt/cdrom on /tmp/cdrom type nfs (rw,vers=4,addr=192.168.71.130,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  虚拟机