背景:

  公司在某电信机房有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. kvm 简单了解

    网络: *主机(装有ESX的PC服务器)简称host,虚拟机简称guest *Host的一个或多个网卡组成一个虚拟交换机,虚拟交换机上创建端口组label,端口组指定vlan tag,虚拟机指定网络标 ...

  2. juery下拉刷新,div加载更多元素并添加点击事件(二)

    buffer.append("<div class='col-xs-3 "+companyId+"' style='padding-left: 10px; padd ...

  3. 2017 NEERC

    2017 NEERC Problem A. Archery Tournament 题目描述:在二维平面上,会陆续出现一些圆,以及一些询问,询问点是否在圆内,如果是,则输出那个圆,并把那个圆删掉,否则输 ...

  4. POJ - Problem 2282 - The Counting Problem

    整体思路:对于每一位,先将当前未达到$limit$部分的段 [如 $0$ ~ $10000$] 直接处理好,到下一位时再处理达到$limit$的部分. · $1 × 10 ^ n$以内每个数(包括$0 ...

  5. Android 开发笔记(二)菜单设计

    菜单设计一 // 创建菜单 public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "关于"); men ...

  6. 蓝图-BluePrint

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  7. Java的Stack类实现List接口真的是个笑话吗

        今天在网上闲逛时看到了这样一个言论,说“Java的Stack类实现List接口的设计是个笑话”.   当然作者这篇文章的重点不是这个,原本我也只是一笑置之,然而看评论里居然还有人附和,说“Ja ...

  8. prototype 与 __proto__

    原文:http://rockyuse.iteye.com/blog/1426510 说到prototype,就不得不先说下new的过程. 我们先看看这样一段代码: 1 <script type= ...

  9. Python 爬虫笔记(二)

    个人笔记,仅适合个人使用(大部分摘抄自python修行路) 1.使用selenium(传送) selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及 ...

  10. 微信公共服务平台开发(.Net的实现)1 认证“成为开发者”

    http://www.cnblogs.com/freeliver54/p/3725979.html http://www.it165.net/pro/html/201402/9459.html 这些代 ...