前言

阿里云的云主机,采用的kvm,今天就花了点时间研究了下。

一、安装

官方文档参考:http://www.linux-kvm.org/page/HOWTO

二、快速建立一个基于vnc的虚拟机安装

桥接网卡

命令创建虚拟机

virt-install \
#--network bridge:br0 如果主机网卡不是桥接模式注释掉,默认走NAT模式
--name vm12 \
--ram= \
--vcpus= \
--disk path=./vm12.img,size= \
--graphics vnc,password=123456,port=,listen=0.0.0.0 \
--cdrom ./CentOS-6.8-i386-minimal.iso

TightVNC客户端,输入端口5930和密码进入安装画面

三、配置和命令的查看方法

1.virsh list 显示运行的虚拟机

2.virsh list --all 显示所有

3.virsh start  vm12 启动vm12虚拟机主机

3.virsh destroy vm12 强制关闭vm12

4.virsh undefine vm12 删除vm12

5.virsh shutdown vm12 友好关闭,一般还是强制吧

6.rpm -ql libvirt  列出包的相关文件

7.通过6

8.更多参数...
virsh define instance-00000015.xml #通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
virsh edit instance-00000015 # 编辑配置文件(一般是在刚定义完虚拟机之后)
virsh start instance-00000015 #启动名字为ubuntu的非活动虚拟机
virsh reboot instance-00000015 #重启虚拟机
virsh create instance-00000015.xml #创建虚拟机(创建后,虚拟机立即执行,成为活动主机)
virsh suspend instance-00000015 #暂停虚拟机
virsh resume instance-00000015 #启动暂停的虚拟机
virsh shutdown instance-00000015 #正常关闭虚拟机
virsh destroy instance-00000015 #强制关闭虚拟机
virsh dominfo instance-00000015 #显示虚拟机的基本信息
virsh domname 2 #显示id号为2的虚拟机名
virsh domid instance-00000015 #显示虚拟机id号
virsh domuuid instance-00000015 #显示虚拟机的uuid
virsh domstate instance-00000015 #显示虚拟机的当前状态
virsh dumpxml instance-00000015 #显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等)
virsh setmem instance-00000015 512000 #给不活动虚拟机设置内存大小   查看当前内存  virsh dominfo instance-00000015  只能提升 currentMemory,天花板是 memory 值;参考http://jpuyy.com/category/virtualization
virsh setvcpus instance-00000015 4 # 给不活动虚拟机设置cpu个数
virsh save instance-00000015 a #将该instance-00000015虚拟机的运行状态存储到文件a中
virsh restore a #恢复被存储状态的虚拟机的状态,即便虚拟机被删除也可以恢复(如果虚拟机已经被undefine移除,那么恢复的虚拟机也只是一个临时的状态,关闭后自动消失)

9.添加磁盘

qemu-img create -f  raw  /data/vm/huge.img 500G

virsh attach-disk newphp_104_vnc51044 /data/kvms/php_fuwuhuas/add2.img vdb --cache none  #动态添加磁盘,需虚拟机启动状态 才能执行。

四、iptable映射nat模式主机的端口

先看下kvm网络架构

#把目标地址192.168.1.100 端口是8000 的映射到192.168.132.3:80,假设192.168.1.100为外网IP

iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp  --dport 8000 -j DNAT --to-destination 192.168.132.3:80

#源地址转换,-s 192.168.132.0/255.255.255.0 -d 192.168.132.3 -p tcp  --dport 80 这串是规则,就是说192.168.132.3 的80端口要投递回去,

把源地址修改成 192.168.1.100

iptables -t nat -A POSTROUTING -s 192.168.132.0/255.255.255.0 -d 192.168.132.3 -p tcp  --dport 80 -j SNAT --to-source 192.168.1.100

再干掉这两条规则就可以了

总结:

有了这点基本概念,我们就可以搭建自己的云环境了。

kvm学习笔记(一,基础概念)的更多相关文章

  1. Docker:学习笔记(1)——基础概念

    Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...

  2. OpenFlow Switch学习笔记(一)——基础概念

    OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open F ...

  3. Elasticserach学习笔记-01基础概念

    本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/e ...

  4. 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍

    第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...

  5. Centos7安装gitlab11 学习笔记之基础概念、部署安装、权限管理、issue管理

    一.基础介绍 1.简介 一个基于GIT的源码托管解决方案 基于rubyonrails开发 集成了nginx postgreSQL redis sidekiq等组件 2.安装要求 2g内存以上,有点占内 ...

  6. JAVA学习笔记之基础概念(一)

    一.Java 简介: Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称. 由 James Gosling和同 ...

  7. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

  8. Quartz学习笔记:基础知识

    Quartz学习笔记:基础知识 引入Quartz 关于任务调度 关于任务调度,Java.util.Timer是最简单的一种实现任务调度的方法,简单的使用如下: import java.util.Tim ...

  9. MyBatis:学习笔记(1)——基础知识

    MyBatis:学习笔记(1)--基础知识 引入MyBatis JDBC编程的问题及解决设想 ☐ 数据库连接使用时创建,不使用时就释放,频繁开启和关闭,造成数据库资源浪费,影响数据库性能. ☐ 使用数 ...

  10. bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111

    基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...

随机推荐

  1. java 一个数组的长度

    package java03; /* *如何获取数组长度 : * 格式: * 数组名称.length * * 这会得到一个int数字,代表数组的长度 * * 数组一旦创建,程序运行期间,长度不可改变 ...

  2. SERVLET API中转发与重定向的区别?

    SERVLET API中转发与重定向的区别? 1.转发(forward方法) 转发仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址. 转发是服务器请求资源,服务器直接访问目标地址的 ...

  3. postman-Runner

    postman Runner配置 preview查看参数

  4. MySQL执行计划之EXPLAIN基本解释说明

    一.EXPLAIN使用潜规则 explain + sql语句 例如: EXPLAIN SELECT * FROM `t_user`; 二. 表头字段详解 (1) id-----> 表的读取顺序 ...

  5. POJ 3525 Most Distant Point from the Sea (半平面交)

    Description The main land of Japan called Honshu is an island surrounded by the sea. In such an isla ...

  6. Vue的使用总结(2)

    1.Vue 中 class 和 style 的绑定 在 Vue 中,可以通过数据绑定来操作元素的 class 列表和内联样式,操作 class 和 style 是用 v-bind 来绑定的.在将 v- ...

  7. webpack对icon-font图片的处理

    一.对图片的处理 安装url-loader 然后再loaderli配置这样会把图片打包成base64格式 { test: /\.(gif|png|jpg)\??.*$/, loader: 'url-l ...

  8. 超全Altium Designer16 总结--Altium Designer

    原址:http://blog.csdn.net/qq_29350001/article/details/52199356 以前是使用DXP2004来画图的,后来转行.想来已经有一年半的时间没有画过了. ...

  9. flutter中的命名路由

    命名路由是区别于基本路由的一种存在,方便于大型项目中路由的统一管理,现在,在前面基本路由的项目基础上实现实现命名路由. 使用步骤 路由配置 命名路由在使用前,需要在根组件main.dart中进行简单的 ...

  10. php简易分词

    http://www.xunsearch.com/ 示例 http://www.xunsearch.com/scws/demo/v48.php