array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Xen安装部署 - 爱码网

 1.    硬件要求

硬件需要满足如下要求:

1. 至少2G内存

    2. 6G的硬盘空间

    3. 对于全虚拟化需要CPU支持虚拟化技术

 

使用如下命令确认CPU的参数设置


  1. [[email protected]19-227 ~]# cat /proc/cpuinfo | grep vmx 
  2.  
  3. flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx pdpe1gb rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm 

若要支持全虚拟机,则需要打开VT功能,如果没有开启VT,则需要进BIOS开启该功能

2.    使用Yum安装Xen

需要安装Xen  kernel-Xen软件包

Xen包:包含了Xen hypervisor Xen tools

   kernel-xen: 是一个可以运行在Xen hypervisor虚拟机的linux内核


  1. [[email protected]19-227 ~]# yum install xen  kernel-xen 
其他推荐工具:

python-virtinst:提供virt-install命令安装虚拟机

libvirt-python:提供了用python语言脚本管理Xen的接口

libvirt:提供了命令行工具管理Xen虚拟机

virt-manager:提供了图形化管理Xen虚拟机的工具

bridge-utils :该程序包存放的是用于配置以太网桥的实用程序,以太网桥的作用是将多个以太网设备连在一起。

Xen-libs :该程序包存放的是Xen的管理程序所需的程序库。 

3.    编辑grub,使用Xen内核启动

修改前的grub文件:


  1. [[email protected]19-227 ~]# vim /etc/grub.conf 
  2.  
  3.     # grub.conf generated by anaconda 
  4.  
  5.     # 
  6.  
  7.     # Note that you do not have to rerun grub after making changes to this file 
  8.  
  9.     # NOTICE:  You have a /boot partition.  This means that 
  10.  
  11.     #          all kernel and initrd paths are relative to /boot/, eg. 
  12.  
  13.     #          root (hd0,0) 
  14.  
  15.     #          kernel /vmlinuz-version ro root=/dev/vg_root/lv_root 
  16.  
  17.     #          initrd /initrd-version.img 
  18.  
  19.     #boot=/dev/sda 
  20.  
  21.     default=1 
  22.  
  23.     timeout=5 
  24.  
  25.     splashimage=(hd0,0)/grub/splash.xpm.gz 
  26.  
  27.     hiddenmenu 
  28.  
  29.     title CentOS (2.6.18-238.12.1.el5xen
  30.  
  31.         root (hd0,0
  32.  
  33.         kernel /xen.gz-2.6.18-238.12.1.el5 
  34.  
  35.         module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root 
  36.  
  37.         module /initrd-2.6.18-238.12.1.el5xen.img 
  38.  
  39.     title CentOS (2.6.18-194.el5
  40.  
  41.         root (hd0,0
  42.  
  43.         kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/vg_root/lv_root 
  44.  
  45.         initrd /initrd-2.6.18-194.el5.img 

注意default=1,默认情况下用第二个内核启动,即使用title CentOS (2.6.18-194.el5)启动;

应该使用title CentOS (2.6.18-238.12.1.el5xen)启动,所以将default的值改为0

修改后的grub文件:


  1. # grub.conf generated by anaconda 
  2. # 
  3. # Note that you do not have to rerun grub after making changes to this file 
  4. # NOTICE:  You have a /boot partition.  This means that 
  5. #          all kernel and initrd paths are relative to /boot/, eg. 
  6. #          root (hd0,0) 
  7. #          kernel /vmlinuz-version ro root=/dev/vg_root/lv_root 
  8. #          initrd /initrd-version.img 
  9. #boot=/dev/sda 
  10. default=0 
  11. timeout=5 
  12. splashimage=(hd0,0)/grub/splash.xpm.gz 
  13. hiddenmenu 
  14. title CentOS (2.6.18-238.12.1.el5xen
  15.         root (hd0,0
  16.         kernel /xen.gz-2.6.18-238.12.1.el5 
  17.         module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root 
  18.         module /initrd-2.6.18-238.12.1.el5xen.img 
  19. title CentOS (2.6.18-194.el5
  20.         root (hd0,0
  21.         kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/vg_root/lv_root 
  22.         initrd /initrd-2.6.18-194.el5.img 

启动参数的含义:


  1. title CentOS (2.6.18-238.12.1.el5xen)     ##定义了内核的名称,该名称将在引导菜单时显示 
  2. root (hd0,0)    ##定义了引导系统的根分区 
  3. kernel /xen.gz-2.6.18-238.12.1.el5    ##指定了需要引导的内核 
  4. module /vmlinuz-2.6.18-238.12.1.el5xen ro root=/dev/vg_root/lv_root   ##定义了用于DOM0的内核 
  5. module /initrd-2.6.18-238.12.1.el5xen.img   ##定义了内核初始化时加载的初始RAM磁盘镜像 

4.    重启机器,检查是否是XEN内核

重启前使用的内核:


  1. [[email protected]19-227 ~]# uname  -rm 
  2. 2.6.18-194.el5 x86_64  

重启后使用的内核:


  1. [[email protected]19-227 ~]# uname  -rm 
  2. 2.6.18-238.12.1.el5xen x86_64  

检查xend是否运行


  1. [[email protected]19-227 ~]# ps -ef|grep xend 
  2. root      5431     1  0 15:04 ?        00:00:00 /usr/bin/python /usr/sbin/xend start 
  3. root      5432  5431  0 15:04 ?        00:00:00 /usr/bin/python  
  4. root      5882  5846  0 15:09 pts/0    00:00:00 grep xend 

 检查domain0是否运行


  1. [[email protected]19-227 ~]# xm list 
  2. Name                                      ID Mem(MiB) VCPUs State   Time(s) 
  3. Domain-0                                   0    15651    16 r-----     32.7 

检查log输出


  1. [[email protected]19-227 xen]# more xend-debug.log  
  2. Nothing to flush. 
  3. Nothing to flush 

5.    简单制作网络安装环境

centos的镜像文件挂载到服务器上,并且将文件复制到配置好的HTTP目录下即可。

6.    配置Xendvnc服务

安装vncvnc server


  1. [[email protected]19-227 ~]# yum install vnc vnc-server 

配置xend,配置如下选项


  1. [[email protected]19-227 xen]# vim /etc/xen/xend-config.sxp 
  2. (vnc-listen '192.168.19.227'
  3.  (vncpasswd ''

重新启动Xend,如果重启不成功则需要重启机器


  1. [[email protected]19-227 xen]# service xend restart 

7.    virt-install命令全虚拟化安装CentOS客户机


  1. [[email protected]19-227 CentOS]# virt-install -n Centos_xen -r 8196  --vcpus=16  -f /opt/xen_centos/Centos_xen.disk -s 120 -v --os-type=linux --os-variant=rhel5       -l http://192.168.19.215/centos/ 

使用VNC客户端连接,开始安装 

Xen安装部署

下面的过程和正常安装系统是一样的










本文转自 waydee 51CTO博客,原文链接:http://blog.51cto.com/waydee/885849,如需转载请自行联系原作者

相关文章: