【原】通过RHCV实现虚拟化的构建

简介:通过RHCV实现一台物理机上,虚拟多个操作系统,如图:

h_host_pic

虚拟出来的操作系统,可以根据权限的划分,实现用户的远程办公,任意地点通过浏览器远程访问自己的虚拟机。

实验环境:两台物理机(操作系统为rhel6.3),物理机的主机名称分别为rhevm.pod1.example.com(简称M端)、host1.pod1.example.com(简称H端);DNS指向192.168.0.254,可以正常解析;rhevm.pod1.example.com通过ISCSI共享磁盘;192.168.0.254提供IPA服务。

基本工具(软件):rhevm(包括JBoss以及postgrepSQL),rhevm-reports,spice-xpi。

步骤如下:

一、更新现有的软件包。

#yum update -y

二、安装rhevm以及rhevm-reports软件包。

#yum install rhevm rhevm-reports -y

rhevm&rhevm-reports

三、完成后,进行rhevm配置。如图:(注意:以下三条配置时,均需要临时关闭ovirt-engine服务)

rhevm-setup

rhevm-setup1

rhevm-setup2

四、配置完端口、服务、密码、类型等等信息,接下来配置数据库了,RHCV使用的是postgrepSQL,YUM安装rhevm的时候,已安装。如图:

rhevm-dwh-setup&rhevm-reports-setup

五、上图中,最后有一条命令:rhevm-reports-setup,该命令是配置报告服务。

六、实际经过rhevm与rhevm-dwh-setup配置后,https://rhevm.pod1.example.com 即可访问了,但是为了实现对用户的管理,在这里我们加入了IPA服务器。此时,还需要添加域,命令如下图:(命令稍微有点长,#rhevm-manage-domains –help可以查参数)

rhevm-manager-domains

提一下,我添加了一个管理用户,用户名为rhevadmin,仔细看的话,执行这条语句后,系统有个提示“(service ovirt-engine restart)”,想必大家都懂吧。

七、好了,这些结束了,咱们就可以登陆咯,一看,“神马?这又英文界面?!”

rhevm.pod1.example.com&chinese

没关系,咱们可以添加中文。废话不多说,上图:

groupinstall_cn

添加中文支持。重启浏览器,进入“web admin”,输入用户密码(第六步添加的用户),域选择“example.com”。别急着敲回车,选下语言,发现含有中文简体,顿时倍感亲切吧。

为了方便大众,以下步骤都在中文界面实现了。下图是第一次正常登陆的界面。

rhevadmin_first_success

八、接下来,咱们通过H端的光盘镜像引导安装一个hypervisor。redhat官网有,过段时间给大家放出。

H端安装过程,就不赘述了,正常安装就好;这里,给大家提一下登陆时候的用户名不是root而是admin,另外H端配置过程的几个必配的,主机名(这里定为hoat1.pod1.example.com),network,M端的主机名,SSH信息。至于其他的,大家随意了。

九、在M端的WEB管理界面上,点“主机”标签,会受到H端的请求,批准即可。如图:

apply_host

十、基本环境都准备好了,如果对MAC有要求,如果DHCP服务器对MAC进行绑定分配IP,可以对虚拟机指定MAC地址,方法如下:(如果不需要更改的话,可以跳过)

MacPoolRanges

第一条命令:查看当前MAC地址池。

第二条命令:进行MAC地址池的更改。

注意:此操作是在M端进行的,进行该步骤后,需要对ovirt-engine进行重启。并且,此步骤,一定要在创建虚拟机之前操作,否则无效。

十一、都已经准备好了,开始创建“数据中心”,如图:

data_center

十二、创建群集,如图:(该集群属于第十一步创建的数据中心)

rhevm-cluster

十三、将“主机”标签下,将主机添加到刚刚创建的群集以及数据中心中,如图:(注意,一定要先将主机模式切换到维护模式)

host_weihu

edit-host-add-center-cluster

十四、接下来,将主机模式切回,点击“存储”标签,添加存储,首先添加数据域,然后添加ISO域。因为,必须有了数据域才能生成ISO域,并且数据域是通过iSCSI协议,但ISO域不支持,这里使用的是NFS协议。如图:

new-data-domain

上图中,用到了之前提过了M端提供的iscsi存储。

add-iso-domain

上图中的导出路径,是M端主机提供的NFS共享。

特别注意:添加了ISO域后,需要对ISO域进行激活,否则该域不可使用,如图:

iso-domain-active

十五、好,咱们既然创建了ISO域了,接下来,咱们只要上传了ISO镜像,就可以装虚拟机了。如图:

rhevm-iso-uploader

#rhevm-iso-uploader list命令,查看当前ISO域名(如果你忘记的话 – – )

#rhevm-iso-uploader -i ISO域名 upload 镜像名称.iso

输入密码即可开始上传,等待上传完毕。(可能耗时较长)

十六、终于可以开始装机了,咱们首先创建一个Linux系统吧(当然,也可以是windows系统,但注意的是Linux集成virtIO驱动,但windows未集成,选择一、磁盘类型使用IDE类型,网卡类型也改;选择二、在安装windows界面之前,单独安装驱动),废话不说了,上图:

add-rhel6.3-vm-1

add-rhel6.3-vm-2

十七、添加完成后,选中虚拟机选择“只运行一次”,更改“引导选项”,选择刚刚上传的ISO镜像,并且将启动顺序更改为CD第一启动。确定即可。此时大家会发现,为什么看不到虚拟机画面,没有关系,点击“移植”左面的小显示器即可。

discover-xpi

如果出现如图所示的错误,没有关系,那是因为你未安装相应的插件,YUM安装即可。

spice-xpi

安装成功后,重启浏览器,即可。

十八、安装成功后,可以制作模板,以便后期直接添加虚拟机,制作方式这里省略,大家有兴趣的话,可以在WEB管理界面找到。这里只是提示大家几个问题:

①制作快照也好,制作模板也好,关机情况下做。

②制作模板之前,先做个快照,然后进入虚拟主机,删除以下信息:Linux中,删除mac地址以及uuid号码(#rm -rf /etc/udev/rules.d/70-persistent-*.rules 删除UDEV规则 && #vim /etc/sysconfig/network-scripts/ifcfg-eth0  ->删除MAC以及UUID),删除ssh keys(#rm -rf /etc/ssh/moduli /etc/ssh/ssh_host*),删除主机名(#vim /etc/sysconfig/network ->修改为localhost.localdomain),删除rhn账号(#rm -rf /etc/sysconfig/rhn/systemid如果有的话);windows下,打开注册表,依次选择:HKEY_LOCAL_MACHINE->SYSTEM->SETUP,在右侧鼠标右键->NEW->String Value,设置键名为UnattendFile是,双击UnattendFile,设置该键值为a:\sysprep.inf,然后运行C:\windows\system32\sysprep\sysprep.exe,选择Enter System Out-of-Box Experience(OOBE)并确定Generalize选项被选中,关机选项设置为shutdown。

③创建模板即可。

十九、细心的读者,可能会发现第七步中,显示当前登录用户位置的右边,有个“配置”,通过这个,可以实现用户的管理,添加一个普通用户,赋予普通用户的角色,通过WEB管理页面将某台虚拟机赋予刚才添加的用户,该用户即可通过登录http://rhevm.pod1.example.com/ 登陆到用户界面,看到管理员所分配的虚拟系统。

——————————————————-至此,RHCV的基本构建以及配置就结束了,有任何问题,请留言,以便后期改正。

【原】基于RHCS集群实现高可用NFS

实验环境:RedhatEnterpriseLinux6.3 虚拟机3台  其中1台通过ISCSI做的存储(文件系统为GFS),剩余2台做NFS的集群

前提:为了避免防火墙以及SElinux问题,暂时将其关闭。同时关闭NetworkManager服务。

主机环境:strong1.example.com->IP:192.168.0.21 && md1.example.com->IP:192.168.0.31 && md2.example.com->IP:192.168.0.32

所有主机DNS可以正常解析,YUM源已配置完成。DNS服务器以及YUM源服务器地址:192.168.0.1。

步骤如下:

一、md1以及md2主机YUM安装所需要的软件包:yum install iscsi-initrator-utils gfs2-utils.x86_64 -y

strong1主机YUM安装:yum install scsi-target-utils -y  ->通过这个服务,实现scsi共享

二、在strong1执行如下命令:#vim /etc/tgt/targets.conf

在40行附近添加,如下三行内容:

 

backing-store /dev/sdb1   #sdb1是我的可共享分区

 

chkconfig iscsid on

service tgtd start

chkconfig tgtd on

三、在md1与md2中通过iscsiadm进行添加步骤二中共享的分区,命令如下:

#iscsiadm –mode discoverydb –type sendtargets –portal 192.168.0.21 –discover

#iscsiadm –mode node –targetname iqn.2013-12.com.example:strong1.target1 –portal 192.168.0.21:3260 –login

注意:登陆的时候,iqn名称是上一个命令所反馈的内容;登陆成功后,fdisk -l 会查看到一块新的分区,默认情况下,是sd[b-z]。

四、在md1或者md2任一一台主机,比如md1执行:#pvcreate /dev/sdc  (假设通过ISCSI共享的分区被UDEV识别成sdc),在md2中执行:#pvscan

五、创建逻辑卷组,md1或者md2执行#vgcreate cluVG /dev/sdc,然后在另一台主机执行#vgscan

六、创建逻辑卷,md1或者md2执行#lvcreate -l 37 -n mygfs cluVG (37参数指的是PE块的数量,通过#vgdisplay查询),另一台主机#lvscan

七、创建GFS2文件系统,执行#mkfs.gfs2 -t mygluster:mygfs2 -p lock_dlm -j 2 /dev/vol0/mygfs  注意:-j选项指定的是由N个日志区,有N个节点(默认每个日志区占用128MB的空间),便有N个日志区。mygluster指的是集群名称,可以暂时跳过这步,先建立集群再执行该句。mygfs2可以随意指定。

八、安装ricci,在其他主机安装luci管理程序,在这里,就在strong1上安装了。md1执行:yum install ricci -y   &&  service ricci start  &&  chkconfig ricci on

md2执行:yum install ricci -y   &&  service ricci start  && chkconfig ricci on

strong1执行:yum install luci -y  && service luci start

九、在md1和md2上,安装ricci后,默认会添加一个用户,用户名为ricci但密码未设置,需要对ricci进行密码设置,密码在添加集群节点时使用。分别执行:#passwd ricci

十、在strong1主机上,执行#firefox https://localhost:8084 &

用户名root 密码是系统密码  正常登陆后,显示如下:

luci第一次登陆

十一、添加一个HA集群,按如图进行修改:

添加一个HA,并且添加节点

注意:密码栏为ricci用户的密码。

十二、等待后,期间节点会自动重启,重启成功后,会显示如下内容:

normal

十三、fence设备,暂时忽略,因为我用的是vmware workstation,fence时会出现问题;KVM,实现方便。更何况大家都是用的fence物理设备吧,本文主要建立基于GFS2文件系统的高可用NFS集群。

十四、添加失效域:(包括设置优先级等信息)

nfs_failover

十五、添加资源(NFS资源包括:IP地址,nfs-server,nfs-client以及文件系统)

ip_add

nfs_server

nfs_client

gfs2_peizhi

注意:

一、IP地址为浮动IP,并非是某台集群主机的IP地址。

二、在这里用的是GFS2文件系统,配置gfs2资源时,所指定的挂载目录,必须在集群中都已经存在(mkdir命令建立),FilesystemID为空,提交后,会自动生成。

十六、添加服务,并启动。(特别注意:集群主机要确保未挂载刚才建立的gfs2分区)

nfsd_add_chushi

注意一、在此处添加资源的时候,有顺序的添加,首先添加IP资源,添加文件系统,然后添加文件系统的子资源nfs-server,再添加nfs-server的子资源nfs-client。

注意二、一定要看好了叠加关系,否则服务启动不起来。如图:

nfsd_add_diejia

submit提交即可。

十七、最后,可以通过#clustat -i1来进行显示当前集群服务状态。如图:

nfs_success1

因为集群内主机的优先级是一样的,测试是否完全成功,可以通过#clusvcadm -r nfsd(此处的nfsd是我在第十六步上指定的服务名)进行测试,查看是否在当前主机上停止运行而转移到另一台主机。

nfs_success2

在所运行的主机上,#df -hT 会查看到当前nfs的挂载信息。如图:

nfs_success3

————————————————————–感谢大家,第一篇纯手打笔记,不足之处还请多多提出,以便后期的改进。有问题的话联系我。