背景:

  公司在某电信机房有50台ubantu的实体机,机器配置的ip是192.168.100.x的ip,内存和cpu都是高端配置。假如哪些端口需要对外映射,就通过机房的防火墙完成端口映射。

  100.1这台机器,能远程ssh,并已经做好了5个端口映射。其余的机器均未开通外网端口。

需求:

  现在需要10台centos的机器,来装一个环境,并对外提供一个web服务。

分析:

  鉴于机房山高路远,去机房把Ubantu缓存centos的操作系统的计划不能施行。然后就出现了KVM虚拟机的流程。

0.ssh登录100.1,然后以它做跳板,利用SecureCRT或者Xshell的socks代理,然后ssh连接后面的机器(方法请百度,我也不好描述,总之就是非常容易操作)。

ssh 192.168.100.2  
sudo su - root 

1.确认操作系统版本,修改apt-get源为aliyun,apt-get update.

cat /etc/issue   #.04ubantu版本
vim /etc/apt/
deb http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ precise-backports main restricted universe multiverse
apt-get update

2.回到scrt的远程ssh界面.(注意,不要进到跳板100.1里面去了)
安装kvm虚拟机

apt-get install ubuntu-virt-server python-vm-builder kvm-ipxe

安装kvm虚拟机的图形化界面

apt-get install virt-manager

安装kvm桥接组件

apt-get install bridge-utils

3.配置kvm桥接.

vi /etc/network/interfaces
修改如下内容
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.100.2
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
dns-nameservers 8.8.8.8

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.100.2
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.254
bridge_ports eth0
bridge_stp off
bridge_fd
bridge_maxwait
dns-nameservers 114.114.114.114

再三确认,仔细确认,确认ok,下一步。
4.重启机器(若是前面没做好,估计你线上的这台机器,估计就要和你say good bye了),5分钟后重新连上去,切换到root用户.

reboot
漫长的等待
sudo su - root
ifconfig,确认:
br0网桥,并绑定有ip.
eth0,木有ip.
lo,绑定127.0.0.1.
virbr0,绑定一个192.168.122.1(也有可能是其他网段).

5.下载centos镜像到本机的/media/.

wget  CentOS-6.7-x86_64-bin-DVD1.iso

(推荐地址 mirrors.aliyun.com) 

6.安装vnc

apt-get install vnc4server
启动vnc
vncserver
输入vnc密码(第一次启动需要输入密码)
xxxxxxx
xxxxxxx
查看vnc端口.
netstat -lntup|grep vnc

7.配置vnc远程连接.

回到跳板机,修改rinnetd文件,完成vnc端口映射,并刷新rinetd进程.(rinetd是linux下一款比较好用的端口映射工具,ubantu下据说可以直接apt-get install rinetd完成安装)
192.168.100.1 已经映射好的端口 192.168.100.2

8.使用vnc的windows客户端,连接Ubantu宿主机192.168.100.2.

选项,调整“颜色、编码”的“颜色底次”为“所有可用颜色”
服务器输入"ip:port",连接后输入密码即可.

9.vnc重新连接(跳过)

vncserver -kill :
//这里的:1是桌面号
vncserver
netstat -lntup|grep vnc

10.打开kvm的管理界面,开始新装虚拟机。

virt-manager
等5秒。
安装虚拟机操作,选择合适的参数,下一步即可。
(ps经验:假如键盘输入无效,- -,记得切换回英文输入法,并敲空格。 )
65536M 内存
核心
G硬盘(下面的勾勾不要)
br0 网络
网卡信息也提前配置下

11.重启虚拟机之后,删除网卡绑定信息。

删除/etc/udev/rules.d/-persistent-net.rules

12.关机并完成kvm复制。

13.KVM虚拟机的快速复制

ip文件设置
删除/etc/udev/rules.d/-persistent-net.rules
history -c && history -w
关机
复制关机后的VM镜像模板文件
cd /var/lib/libvirt/images
cp -av 母板.img 新机器.img
复制模板配置文件
cd /etc/libvirt/qemu/
cp -av 母板.xml 新.xml
修改模板配置文件
修改虚拟机的名称,如:<name>
修改uuid编号 ,如:<uuid>倒数3位
修改mac地址,如:<mac 倒数2位
修改镜像指定位置
重启libvirtd服务
service libvirt-bin restart
查看虚拟机
virsh list --all
virsh start vir_new
virsh list --all

14.上面有一项,网络桥接,这个操作一般不建议操作,为了弄这个桥接,我线上的2台机器失联了(强烈建议本地机器多测试)。

 我们需要10台centos,一个实体机可以做2台,5个实体机才能满足需求,那么问题来了,这10个机器进行互联,咋么办?
做法如下,仅供参考: 实体机的网络配置已在上面配置好桥接,现在来新建一个一个副ip:
ifconfig br0: 192.168.50.1 netmask 255.255.255.0 up
(实体机计划使用50.-.5这一网段,我们只用5个实体机,192.168..1只做跳板用,不装虚拟机)
开启iptables,ubantu默认iptables都是放行的。
iptables -t nat -L
然后新建一个转发
iptables -t nat -A POSTROUTING -o br0 -s 192.168.50.0/ -j MASQUERADE
虚拟机的网络配置:
ip配成192.168.50.(虚拟机计划使用50.-.110这1网段,10个机器)
网关配成各自对应的实体机对应的副ip(此处为192.168.50.)
然后重启虚拟机的网卡,虚拟机192.168.50. 192.168.50.1 192.168..2可以互联,虚拟机可以上外网。(5个实体机上面的虚拟机都弄好之后,50.1~50.5 50.101~50.110 100.2~100.6 都是可以随意互联的)

参考链接:

    http://help.aliyun.com/knowledge_detail.htm?knowledgeId=5974461 vnc安装参考

    http://www.cnblogs.com/york-hust/archive/2012/05/29/2523437.html  kvm/QEMU桥接网络

特别鸣谢:

    老朋友丁丁的帮助。他对网络的高深技术,给了我极大的帮助,在我最郁闷的时候,就像一盏明灯指引了我。嘿嘿。

KVM虚拟机安装使用教程(Ubantu)的更多相关文章

  1. KVM 虚拟机 安装配置

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  2. kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  3. QEMU/KVM虚拟机安装配置

    1.安装相关组件: [root@KVM ~]# yum install qemu-img qemu-kvm qemu-kvm-tools virt-manager virt-viewer virt-v ...

  4. kvm虚拟机安装

    KVM虚拟化技术介绍 概述 KVM是基于内核的虚拟化技术(Kernel-based Virtual Machine),于2007年的Linux 2.6.20被合并进Linux内核.KVM要求CPU支持 ...

  5. 基于VirtualBox虚拟机安装Ubuntu教程

    基于VirtualBox虚拟机安装Ubuntu图文教程 一. 下载安装VirtualBox 官网下载VirtualBox,目前版本:VirtualBox 6.0.4 for Windows hosts ...

  6. centos7.4下的KVM虚拟机安装使用

    本来是用的vmware,不过后来想试下KVM,想着装个ZSTACK也行,结果zstack使用网络安装没搞明白,把物理机系统毁了,这下彻底完蛋了,只好还装个centos了,但是又不想用VMWARE就想起 ...

  7. KVM虚拟机安装报错 KVM is not available

    在linux系统上使用kvm安装系统时,如果你的cpu不支持虚拟化技术那么可能会报以下错误: Warning:KVM is not available. This may mean the KVM p ...

  8. windows kvm虚拟机安装

    这一步操作需要注意的几个点:a.局域网内与主机传输文件用scp或ftp命令,要保证ISO镜像文件在主机上有操作权限的目录下,比如 /home等:b.不管安装什么系统的虚拟机,创建的磁盘类型,分配的虚拟 ...

  9. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

随机推荐

  1. 问题解决:The content of the adapter has changed but ListView did not receive a notification

    1. 不要在后台线程中直接调用adapter 2. 不要在后台线程中修改adapter绑定的数据 如果对adapter或者adapter绑定的数据是在线程中,加上runOnUiThread就可以了 r ...

  2. django 项目中的 favicon.ico 处理

    django 项目中的 favicon.ico 处理  (django == 2.0.6) 1. 引入模块: from django.views.generic.base import Redirec ...

  3. 苹果容器超出内容overflow滑动卡顿问题

    -webkit-overflow-scrolling:touch; 就这么一段代码,加载需要滚动的容器css样式中.因为苹果的硬件加速产生的后果....

  4. mysql视图学习总结(转)

    一.使用视图的理由是什么?1.安全性.一般是这样做的:创建一个视图,定义好该视图所操作的数据.之后将用户权限与视图绑定.这样的方式是使用到 了一个特性:grant语句可以针对视图进行授予权限.2.查询 ...

  5. systemd基础

    systemd 起源 systemd这一名字源于Unix中的一个惯例:在Unix中常以“d”作为系统守护进程(英语:daemon,亦称后台进程)的后缀标识.除此以外,systemd亦是借代英文术语D体 ...

  6. Merge k Sorted Lists——分治与堆排序(需要好好看)

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 1 ...

  7. django的orm中F对象的使用

    今天不巧就用上了. 就是将数据库的字段,自增1的场景. from django.db.models import F DeployPool.objects.filter(name=deployvers ...

  8. Java学习(运算符,引用数据类型)

    一.  运   算    符 1.算数运算符 运算符是用来计算数据的符号.数据可以是常量,也可以是变量.被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算,具体使用看下图 ...

  9. 开发 ASP.NET vNext 初步总结(使用Visual Studio 2015 Preview )

    新特性: vNext又称MVC 6.0,不再需要依赖System.Web,占用的内存大大减少(从前无论是多么简单的一个请求,System.Web本身就要占用31KB内存). 可以self-host模式 ...

  10. Java虚拟机四:垃圾回收算法与垃圾收集器

    在Java运行时的几个数据区域中,程序计数器,虚拟机栈,本地方法栈3个区域随着线程而生,随线程而灭,因此这几个区域的内存分配和回收具有确定性,不需要过多考虑垃圾回收问题,因为方法结束或者线程结束时,内 ...