zoukankan      html  css  js  c++  java
  • 第九章 nova组件安装3

    前提:需要物理机器支持Intel VT or AMD-V

    1、在计算节点安装kvm等虚拟化组件

    apt -y install qemu-kvm libvirt-bin virtinst bridge-utils libosinfo-bin libguestfs-tools virt-top
    插曲:
    在上面的包安装完成后,本地为生成一个virbr0网桥;启用了 libvirt 服务后生成的,libvirt 在服务器(host)上生成一个 virtual network switch (virbr0),host 上所有的虚拟机通过这个 virbr0 连起来。默认情况下 virbr0 使用的是NAT 模式(采用 IP Masquerade),所以这种情况下虚拟机通过 host 才能访问外部。但是在我们的环境中,虚拟机使用的是 bridge(网桥)直接连到局域网里,所以这个 virbr0 不是必须的(注:不要搞混淆了,bridge 和这里的 virbr0 网桥是互不相干的),为了使得网络清晰和查看不易混淆,此处删除virbr0网桥。(此段话借鉴别人的,是当时出现问题时查找的)
    virsh net-list               # 查看,存在default
    virsh net-destroy default    #  移除virbr0 bridge,终止dnsmasq 进程, 移除iptables rules
    #virsh net-undefine default
    virsh net-autostart --network default --disable  # 阻止重启后网络自动启动
    systemctl restart libvirtd      # 记得重启服务
    brctl show                      # 确认是否删除
    virsh net-list                  # 确认是否删除,选一个查看的方式

    2、在计算节点开启vhost-net

    modprobe vhost_net
    lsmod | grep vhost

    echo vhost_net >> /etc/modules

    3、在计算节点安装nova组件

    apt -y install nova-compute nova-compute-kvm
    mv /etc/nova/nova.conf /etc/nova/nova.conf.org    # 备份官方的
    # 配置文件
    vi /etc/nova/nova.conf
    # create new
    [DEFAULT]
    # allow resize to same host
    allow_resize_to_same_host = True
    # block allocate time
    block_device_allocate_retries = 600
    block_device_allocate_retries_interval = 6
    max_concurrent_live_migrations = 10
    use_neutron = True
    linuxnet_interface_driver = nova.network.linux_net.LinuxBridgeInterfaceDriver    # LinuxBridge桥接
    firewall_driver = nova.virt.firewall.NoopFirewallDriver
    vif_plugging_is_fatal = True
    vif_plugging_timeout = 300
    debug = True                                    # 打开调试功能
    # define own IP address
    my_ip = 192.168.222.27                          # API IP
    state_path = /var/lib/nova
    enabled_apis = osapi_compute,metadata
    log_dir = /var/log/nova
    # RabbitMQ connection info
    transport_url = rabbit://openstack:password@192.168.222.29
    [api]
    auth_strategy = keystone
    
    # Glance connection info
    [glance]
    api_servers = http://192.168.220.29:9292     #  这里配置存储网的IP,也可以API网
    
    # enable VNC
    [vnc]
    enabled = True
    server_listen = 0.0.0.0
    server_proxyclient_address = $my_ip
    novncproxy_base_url = http://192.168.222.29:6080/vnc_auto.html
    
    [oslo_concurrency]
    lock_path = $state_path/tmp
    
    # Keystone auth info
    [keystone_authtoken]
    www_authenticate_uri = http://192.168.222.29:5000
    auth_url = http://192.168.222.29:5000
    memcached_servers = 192.168.222.29:11211
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = nova
    password = servicepassword
    
    [placement]
    auth_url = http://192.168.222.29:5000
    os_region_name = RegionOne
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    project_name = service
    username = placement
    password = servicepassword
    
    [wsgi]
    api_paste_config = /etc/nova/api-paste.ini
    
    [neutron]
    auth_url = http://192.168.222.29:5000
    auth_type = password
    project_domain_name = default
    user_domain_name = default
    region_name = RegionOne
    project_name = service
    username = neutron
    password = servicepassword
    service_metadata_proxy = True
    metadata_proxy_shared_secret = metadata_secret
    
    [cinder]
    os_region_name = RegionOne
    
    [libvirt]
    virt_type = kvm
    # vmotion function,所有计算节点之间 创建nova无密码登录账号
    live_migration_flag=VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_TUNNELLED
    
    # 修改文件权限
    chmod 640 /etc/nova/nova.conf
    chgrp nova /etc/nova/nova.conf
    # 重启服务
    systemctl restart nova-compute          # 服务已经开机自启动
    插曲:
    在这里实现虚拟机的迁移功能;上面配置文件的末尾也说明了,要在所有计算节点之间 创建nova无密码登录账号,并进行以下配置。
    # 创建nova账号免密码登录
    cat /etc/passwd|grep nova
    usermod -s /bin/bash nova
    cat /etc/passwd|grep nova # 确认
    passwd nova               # 输入admin123,作为密码
    # 以上动作创建账号行为,现在各个节点上进行完成后,再继续
    su - nova
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
    ssh-copy-id -i .ssh/id_dsa.pub nova@192.168.220.27  # 有几个节点就传几个节点,相互传送
    ssh 192.168.220.27                                  # 验证所有节点,无需密码登录(这个IP是为了在存储网上迁移)
    
    # 配置文件
    vi /etc/default/libvirtd
    # 修改如下
    libvirtd_opts="-l"
    
    # 配置文件
    vi /etc/libvirt/libvirtd.conf
    # 修改如下
    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16509"
    listen_addr = "192.168.220.28"                      # 写入每个计算节点存储网的IP地址
    auth_tcp = "none"
    host_uuid = "75f51c73-fa22-4401-906e-c42b05f966d4" # 写入每个计算节点uuid,用uuidgen生成
    
    systemctl restart libvirtd             # 服务已经开机自启动

    4、在控制节点发现计算节点(这里需要验证)

    # 发现计算节点,同步数据库,python的orm对象关系映射,需要初始化来生成数据库表结构
    su -s /bin/bash nova -c "nova-manage cell_v2 discover_hosts"
    # 查看验证
    openstack compute service list

  • 相关阅读:
    移动性能测试 | 持续集成中的 Android 稳定性测试
    iOS 测试 | iOS 自动化性能采集
    Google 测试总监聊如何经营成功的测试职业生涯
    浅谈一下可扩展性网站架构设计
    一条SQL执行慢的原因有哪些
    为什么在做微服务设计的时候需要DDD?
    是时候拥抱.NET CORE了
    MySql多表查询优化
    九种高性能可用高并发的技术架构
    HTTP协议总结
  • 原文地址:https://www.cnblogs.com/shihongkuan/p/11399245.html
Copyright © 2011-2022 走看看