云平台部署及实施----------》最终目的是-----------通过云平台创建和管理虚拟机 云计算盈利方式: 1、租虚拟机 2、租服务---------》云平台 nginx php 开发 mysql tomcat dns 3、租空间---------》百度云盘 4、租环境---------》java开发环境 lamp环境 lnmp环境 办公环境 5、租集群---------》虚拟机组成的 6、租方案---------》游戏页面 pop2 电商商务 总结:云平台核心内容------创建和管理虚拟机 软件及服务层(saas) --------------》软件运行 平台及服务层 (paas )-------------》云平台 基础设施层(硬件 iaas)---------》提供运行资源 云计算: 优势: 按需索取,随需而变、通用性、高可靠性(对外安全性高,对内比较薄弱)、低成本 、超大规模、虚拟化、高扩展(灵活性) openstack Python (蟒蛇) 1、开源免费 2、二次开发(根据不同的公司需求、可以二次开发)-----灵活性高 3、A B 目前最新版本N版本 kvm功能: 提供虚拟化资源
kvm虚拟机管理 一、环境 二、安裝kvm [root@target ~]# yum install -y qemu-kvm qemu-kvm-tools virt-install #安装kvm内核 [root@target ~]# yum install libvirt libvirt-cim libvirt-client libvirt-java.noarch libvirt-python #安装virt管理工具 [root@computer002 ~]# systemctl start libvirtd ############################################################################################################################# [root@target ~]# modprobe kvm #加载kvm内核 [root@target ~]# modprobe kvm-intel #intel cpu加载kvm-intel内核,要支持全虚拟化,必须开启;要求cpu支持,通过bios可设置。 [root@target ~]# modprobe kvm-amd #amd cpu加载kvm-intel [root@target ~]# modprobe -ls | grep kvm #查看内核是否开启 kernel/arch/x86/kvm/kvm.ko kernel/arch/x86/kvm/kvm-intel.ko kernel/arch/x86/kvm/kvm-amd.ko [root@target ~]# modprobe -ls | grep kvm-intel kernel/arch/x86/kvm/kvm-intel.ko ############################################################################################################################## 三、安装guest虚拟机 1、直接通过virt-manager安装、管理虚拟机(略) 2、通过命令行安装guest虚拟机 [root@target ~]# virsh iface-bridge eth0 br0 #创建桥接 [root@target ~]# yum install virt-viewer #开启图形控制台安装虚拟客户机需要, [root@target ~]# virt-install #安装选项可用virt-install --help查看 --name node4 #虚拟机名 --ram=1024 #分配内存大小,MB --arch=x86_64 #模拟的CPU 构架 --vcpus=1 #配置虚拟机的vcpu 数目 --check-cpu #检查确定vcpu是否超过物理 CPU数目,如果超过则发出警告。 --os-type=linux #要安装的操作系统类型,例如:'linux'、'unix'、'windows' --os-variant=rhel5 #操作系统版本,如:'fedora6', 'rhel5', 'solaris10', 'win2k' --disk path=/virhost/node7.img,device=disk,bus=virtio,size=20,sparse=true #虚拟机所用磁盘或镜像文件,size大小G --bridge=br0 #指定网络,采用透明网桥 --noautoconsole #不自动开启控制台 --pxe #网络安装 ============================================================================================================== virt-install --connect qemu:///system --virt-type kvm --name rhel6 --ram 1024 --vcpus 2 --network bridge=brnet0 --disk path=/VMs/images/rhel6.img,size=120,sparse --location ftp://172.16.0.1/rhel6/dvd --extra_args “ks=http://172.16.0.1/rhel6.cfg” --os-variant rhel6 --force 2、通过命令行安装guest虚拟机 qemu-img create -f qcow2 /images/centos6.3-x86_64.img 10G chown qemu:qemu /images/centos6.6-x86_64.img virt-install --name centos6.5 --ram=2048 --arch=x86_64 --vcpus=2 --check-cpu --os-type=linux --os-variant='rhel6' -c /tmp/CentOS-6.5-x86_64-bin-DVD1.iso --disk path=/images/centos6.8-x86_64.img --noautoconsole --vnc --vncport=5903 --vnclisten=0.0.0.0 --bridge=br0 二、利用virsh对虚拟机管理 2、开关机 virsh start centos6.3 #开机 virsh create /etc/libvirt/qemu/centos6.3.xml #直接通过主机配置文档启动主机 virsh shutdown centos6.3 #关机 virsh destroy centos6.3 #强制关闭电源 virsh list --all #查看虚拟机状态 3、添加删除虚拟机 virsh define /etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机 virsh list --all #node5已经添加 virsh undefine node5 #移除虚拟机 ls /etc/libvirt/qemu virsh list --all #node5已经被移除 四、利用virsh对虚拟机管理 1、开关机 [root@target ~]# virsh start node4 #开机 [root@target ~]# virsh create /etc/libvirt/qemu/node4.xml #直接通过主机配置文档启动主机 [root@target ~]# virsh shutdown node4 #关机 [root@target ~]# virsh destroy node4 #强制关闭电源 [root@target ~]# virsh list --all #查看虚拟机状态 Id 名称 状态 ---------------------------------- 18 node4 running - node5 关闭 - win8 关闭 2、添加删除虚拟机 [root@target ~]# virsh define /etc/libvirt/qemu/node5.xml #根据主机配置文档添加虚拟机 [root@target ~]# virsh list --all #node5已经添加 Id 名称 状态 ---------------------------------- 18 node4 running - node5 关闭 - win8 关闭 [root@target ~]# virsh undefine node5 #移除虚拟机 [root@target ~]# ls /etc/libvirt/qemu networks node4.xml win8.xml [root@target ~]# virsh list --all #node5已经被移除 Id 名称 状态 ---------------------------------- 18 node4 running - win8 关闭 ============================================================================================================================= [root@target kvm_node]# qemu-img info node4.img #查看镜像文件格式 image: node4.img file format: qcow2 virtual size: 20G (21495808000 bytes) disk size: 6.3G cluster_size: 65536 [root@target kvm_node]# qemu-img convert -f raw -O qcow2 /virhost/kvm_node/node5.img /virhost/kvm_node/node5_qcow2.img #把raw格式转换成qcow2格式: ############################################################################################################################## root@target kvm_node]# virsh snapshot-create-as node4 node4.snap1 [root@target kvm_node]# qemu-img info node4.img image: node4.img file format: qcow2 virtual size: 20G (21495808000 bytes) disk size: 6.3G cluster_size: 65536 Snapshot list: ID TAG VM SIZE DATE VM CLOCK 1 node4.snap1 401M 2012-04-10 12:04:42 22:02:04.672 ———————————————————————————————————————————————————————————————————————————————————————————————————————————————————— [root@target kvm_node]# virsh snapshot-create-as node4 node4.snap2 #为虚拟机node4当前状态创建快照 [root@target kvm_node]# virsh snapshot-list node4 #查看node4的快照 名称 Creation Time 状态 ------------------------------------------------------------ node4.snap1 2012-04-11 00:47:06 +0800 paused node4.snap2 2012-04-11 01:19:06 +0800 running [root@target kvm_node]# virsh snapshot-revert node4 node4.snap1 #从快照文件node4.snap1恢复node4 [root@node4 ~]# ls /root/ #/root/下无文件,恢复成功 [root@target kvm_node]# virsh snapshot-revert node4 node4.snap2 #从快照文件node4.snap2恢复node4 [root@node4 ~]# ls #恢复成功 anaconda-ks.cfg install.log.syslog pcre-8.02.tar.gz php-5.2.13.tar.gz install.log nginx-0.7.65.tar.gz php-5.2.13-fpm-0.5.13.diff.gz webbench-1.5.tar.gz 5、删除快照 [root@target kvm_node]# virsh snapshot-delete node4 node4.snap1 6、利用qemu-img创建镜像文件的snapshot qemu-img snapshot -c node4.snap1 /virhost/kvm_node/node4.img #创建快照 qemu-img snapshot -l /virhost/kvm_node/node4.img #查看快照 qemu-img snapshot -a snapshot-name /path/to/os.img #把虚拟机恢复到某个快照的状态: qemu-img snapshot -d snapshot-name /path/to/os.img #删除某个快照:# 3、远程管理虚拟机(qemu+ssh连接) [root@target ~]# yum install virt-viewer [root@target ~]# export DISPLAY=192.168.40.18:0.0 [root@target ~]# virt-viewer -c qemu///system node4 #本地管理虚拟机,system:获取system权限,注意qemu后是三个/ [root@manager ~]# virt-viewer -c qemu+ssh://root@192.168.32.40/system node4 #远程linux通过virt-viewer+ssh管理虚拟机 Xlib: extension "RANDR" missing on display "192.168.40.18:0.0". root@192.168.32.40's password: root@192.168.32.40's password: #会弹出virt-viwer的gtk管理界面 4、使用已存在的虚拟机配置文档安裝新的虚拟机 [root@target ~]# qemu-img create -f qcow2 /virhost/kvm_node/node6.img 20G #为新建虚拟机生产磁盘镜像文件 [root@target ~]# virsh list Id 名称 状态 ---------------------------------- 18 node4 running [root@target ~]# virsh dumpxml node4 >/etc/libvirt/qemu/node6.xml #导出虚拟机node6的硬件配置信息为/etc/libvirt/qemu/node6.xml [root@target ~]# vim /etc/libvirt/qemu/node6.xml <domain type='kvm' id='20'> #修改node6的id号 <name>node6</name> #虚拟机node6的name <uuid>4b7e91eb-6521-c2c6-cc64-c1ba72707fc7</uuid> #uuid必须修改,否则会和node4的冲突 <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='rhel5.4.0'>hvm</type> <boot dev='network'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2' cache='none'/> <source file='/virhost/node4.img'/> #指定新虚拟机的硬盘文件 <target dev='vda' bus='virtio'/> </disk> <interface type='bridge'> <mac address='54:52:00:69:d5:c7'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> </interface> <interface type='bridge'> <mac address='54:52:00:69:d5:d7'/> <source bridge='br0'/> <target dev='vnet1'/> <model type='virtio'/> </interface> <serial type='pty'> <source path='/dev/pts/4'/> <target port='0'/> </serial> <console type='pty' tty='/dev/pts/4'> <source path='/dev/pts/4'/> <target port='0'/> </console> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='5900' autoport='yes' keymap='en-us'/> </devices> </domain> [root@target ~]# virsh define /etc/libvirt/qemu/node6.xml #使用虚拟描述文档建立虚拟机,可用virsh edit node6修改node6的配置文件 [root@target ~]# virsh start node6 #启动虚拟机 5 为虚拟机开启vnc [root@target ~]# virsh edit node4 #编辑node4的配置文件;不建议直接通过vim node4.xml修改。 <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/> #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码 改为 <graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='xiaobai'/> #固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络 2. 远程vnc访问地址:192.168.32.40:5904
ame State
----------------------------------------------------
1 centos7 runni
kvm功能: 提供虚拟化资源 kvm :集成在linux内核当中的,2.4内核 虚拟软件: 虚拟化分类: 全虚拟化: 虚拟机所需要资源全部虚拟出来的, vm个人版 VirtualBox 容易操作: 速度慢: 半虚拟化: 一部分虚拟机资源是虚拟出来的,另一部分直接使用物理机 管理复杂: 速度快: 企业 ----esxi----xen 安装在裸机 kvm-----linux kvm 功能:把硬件资源虚拟成虚拟资源, + 一套管理工具-------创建虚拟机以及管理虚拟机 kvm 仅仅只能虚拟机部分资源 --------网卡不能虚拟 + qemu(虚拟化软件) kvm 不能重复虚拟机--------不能虚拟再虚拟------ kvm 安装到物理机上 qemu 是可以 虚拟资源 创建和管理虚拟机 创建一个虚拟机 ---------》 1、虚拟资源(虚拟内存 cpu 硬盘 ) -----------------kvm+qemu 2、管理工具------通过已经虚拟出来的虚拟资源来创建虚拟机并且管理 -------三方工具 livirtd vm个人版 kvm 部署: 1、安装一个新的虚拟机 2、配置静态IP地址 3、设置yum [os] name=os baseurl=http://192.168.50.124/centos-yum/7/os/x86_64/ gpgcheck=0 enabled=1 [update] name=update baseurl=http://192.168.50.124/centos-yum/7/updates/x86_64/ gpgcheck=0 enabled=1 [ext] name=ext baseurl=http://192.168.50.124/centos-yum/7/extras/x86_64/ gpgcheck=0 enabled=1 4、安裝kvm [root@target ~]# yum install -y qemu-kvm qemu-kvm-tools virt-install #安装kvm内核 [root@target ~]# yum install libvirt libvirt-cim libvirt-client libvirt-java.noarch libvirt-python #安装virt管理工具 [root@computer002 ~]# systemctl start libvirtd 5、创建永久性网桥 [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.40.148 NETMASK=255.255.255.0 GATEWAY=192.168.40.2 ONBOOT=yes [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=d86bcb18-7888-40bb-a087-e8c86d6ce323 DEVICE=ens33 ONBOOT=yes BRIDGE=br0 IPADDR=192.168.40.148 NETMASK=255.255.255.0 GATEWAY=192.168.40.2 [root@localhost ~]# mkdir /images [root@localhost ~]# qemu-img create -f qcow2 /images/centos7.img 10G #创建空虚拟机硬盘 [root@localhost ~]# chown qemu:qemu /images/centos7.img #赋予权限 [root@localhost ~]# virt-install #创建虚拟机主命令 --name centos7 #指定虚拟机名称 --ram=2048 #指定虚拟机内存大小 --arch=x86_64 #指定CPU框架 --vcpus=1 #指定虚拟机cpu个数 --check-cpu #检测cpu是否超用 --os-type=linux #指定虚拟机类型 --os-variant='rhel7' -c /tmp/CentOS-6.5-x86_64-bin-DVD1.iso #指定虚拟机安装系统的系统盘 --disk path=/images/centos7.img #指定虚拟机安装系统的虚拟机硬盘 --noautoconsole #禁用控制台 --vnc #开vnc远程连接 --vncport=5903 #指定vnc的端口号 --vnclisten=0.0.0.0 #监听的IP地址。允许所有网卡访问 --bridge=br0
2017-02-11
[root@localhost ~]# hostnamectl set-hostname controller [root@localhost ~]# vim /etc/hosts 192.168.40.148 controller [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# vim /etc/selinux/config SELINUX=disabled 平台环境部署 1、时间服务 2、MySQL数据库服务 3、消息队列服务 4、memcached #########################openstack组件安装################################ 1、openstack安装组件==========keystone====================== 2、功能: 1、用户认证(管理用户) 2、各个组件之间认证 3、租户认证 依赖服务:1、MySQL 2、memcached 数据-------------数据库(keystone) keystone ------数据-(权限)------keystone 3、部署安装: 1、 MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '123'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'controller' IDENTIFIED BY '123'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123'; Query OK, 0 rows affected (0.00 sec) keystone ---(keystone用户)------ 数据库(mysql)keystone库 export OS_USERNAME=admin export OS_PASSWORD=123 export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3 keystone-manage bootstrap --bootstrap-password 123 --bootstrap-admin-url http://controller:35357/v3/ --bootstrap-internal-url http://controller:35357/v3/ --bootstrap-public-url http://controller:5000/v3/ --bootstrap-region-id RegionOne [root@controller ~]# yum install python-openstackclient -y