云计算笔记

云平台部署及实施----------》最终目的是-----------通过云平台创建和管理虚拟机

云计算盈利方式:
    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

 

 

posted @ 2017-02-09 10:50  Linux运维指路  阅读(288)  评论(2编辑  收藏  举报
欢迎光临!!!!