• 第九章 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

  • 相关阅读:
    Struts2SpringHibernate整合示例,一个HelloWorld版的在线书店(项目源码+详尽注释+单元测试)
    Java实现蓝桥杯勇者斗恶龙
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 226 翻转二叉树
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 225 用队列实现栈
    Java实现 LeetCode 224 基本计算器
    Java实现 LeetCode 224 基本计算器
  • 原文地址:https://www.cnblogs.com/shihongkuan/p/11399245.html
Copyright © 2020-2023  润新知