赞
踩
目录
根据第一章节配置时设置的共有网络,现在共有网络上进行添加
私有网络主要用于实现网络隔离,外部访问私有网络时,需要申请浮点IP,进行备案
- ##配置`/etc/neutron/neutron.conf`` 文件并完成如下操作:
- ------------------------------------------------------
- [DEFAULT] ---在[DEFAULT]部分,启用路由服务和重叠的IP地址
- ....
- core_plugin = ml2
- service_plugins = router
- allow_overlapping_ips = True
-
- ... <其他内容不变>
-
- ------------------------------------------------------
-
- ##配置 Modular Layer 2 (ML2) 插件,ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施。
- ##配置/etc/neutron/plugins/ml2/ml2_conf.ini
- ------------------------------------------------------
- [ml2]
- ...
- type_drivers = flat,vlan,vxlan
- tenant_network_types = vxlan
- mechanism_drivers = linuxbridge,l2population
- extension_drivers = port_security
-
- [ml2_type_flat]
- ...
- flat_networks = provider
-
- [ml2_type_vxlan] --为私有网络配置VXLAN网络识别的网络范围
- ...
- vni_ranges = 1:1000
-
- [securitygroup]
- ...
- enable_ipset = True
- ------------------------------------------------------
-
- ##Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规
- ##配置/etc/neutron/plugins/ml2/linuxbridge_agent.ini``文件并且完成以下操作:
- ------------------------------------------------------
- [linux_bridge]
- physical_interface_mappings = provider:ens33
-
- [vxlan]
- enable_vxlan = True
- local_ip = 192.168.19.71
- l2_population = True
-
- [securitygroup]
- ...
- enable_security_group = True
- firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
- ------------------------------------------------------
-
- ##配置layer-3代理--Layer-3代理为私有虚拟网络提供路由和NAT服务
- ##编辑``/etc/neutron/l3_agent.ini``文件并完成以下操作:
- ------------------------------------------------------
- [DEFAULT]
- ...
- interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
- external_network_bridge =
- ------------------------------------------------------
-
- ##配置DHCP代理
- ##编辑``/etc/neutron/dhcp_agent.ini``文件并完成下面的操作:
- ------------------------------------------------------
- [DEFAULT]
- ...
- interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
- dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
- enable_isolated_metadata = True
- ------------------------------------------------------
-
- ##重启网络服务
- systemctl restart neutron-server.service netutron-linuxbridge-agent.service
- ##编辑``/etc/neutron/plugins/ml2/linuxbridge_agent.ini`` 文件,建立layer-2虚无网络并且处理安全住规则操作:
- --------------------------------------------------------
- [vxlan]
- enable_valan = True
- local_ip = 192.168.19.72
- l2_population = True
- --------------------------------------------------------
-
- ##重启Linuxbridge代理
- systemctl restart neutron-linuxbridge-agent.service
-
- ##接下来配置Dashboard,编辑文件 /etc/openstack-dashboard/local_settings
- --------------------------------------------------------
- OPENSTACK_NEUTRON_NETWORK = { --打开支持3层网络服务
- ...
- 'enable_router': True,
- 'enable_quotas': True,
- 'enable_distributed_router': True,
- 'enable_ha_router': True,
- 'enable_lb': True,
- 'enable_firewall': True,
- 'enable_vpn': True,
- 'enable_fip_topology_check': True,
- }
- --------------------------------------------------------
-
- ##启动web服务以及会话会话存储
- systemctl restart httpd.service mecached.service
同样我们可以在web界面进行访问,通过图形化页面进行网络构建,这里不进行具体阐述。
OpenStack块存储服务(cinder)为虚拟机添加持久的存储,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷。此服务也会激活管理卷的快照和卷类型的功能。
块存储服务通常包含下列组件:
cinder-api:
接受API请求,并将其路由到cinder-volume执行。
cinder-volume:
与块存储服务和例如cinder-scheduler的进程进行直接交互。它也可以与这些进程通过一个消息队列进行交互。cinder-volume服务响应送到块存储服务的读写请求来维持状态。它也可以和多种存储提供者在驱动架构下进行交互。
cinder-scheduler守护进程:
选择最优存储提供节点来创建卷。其与nova-scheduler组件类似。
cinder-backup守护进程:
cinder-backup服务提供任何种类备份卷到一个备份存储提供者。就像cinder-volume服务,它与多种存储提供者在驱动架构下进行交互。
消息队列:
在块存储的进程之间路由信息。
【环境】创建最基础的虚拟机block1,设置20G的虚拟磁盘,设置域名解析,加入到集群中
在控制节点上安装和配置块设备存储服务,即 cinder。这个服务需要至少一个额外的存储节点,以向实例提供卷。在安装和配置块存储服务之前,必须创建数据库、服务证书和API端点。
- ##先决条件:
- 1 构建数据库
- ##以 root 用户连接到数据库服务器:
- mysql -u root -p root
-
- ##创建cinder数据库:
- CREATE DATABASE cinder;
-
- ##允许 cinder 数据库合适的访问权限:
- GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
- GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'cinder';
-
- 2 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
- . admin-openrc
-
- 3 要创建服务证书
- ##创建一个 cinder 用户:
- openstack user create --domain default --password-cinder cinder
-
- ##添加 admin 角色到 cinder 用户上:
- openstack role add --project service --user cinder admin
-
- ##创建 cinder 和 cinderv2 服务实体:
- openstack service create --name cinder --description "OpenStack Block Storage" volume
-
- openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
-
- 4 创建块设备存储服务的 API 入口点:
- openstack endpoint create --region RegionOne \
- volume public http://controller:8776/v1/%\(tenant_id\)s
-
- openstack endpoint create --region RegionOne \
- volume internal http://controller:8776/v1/%\(tenant_id\)s
-
- openstack endpoint create --region RegionOne \
- volume admin http://controller:8776/v1/%\(tenant_id\)s
-
- openstack endpoint create --region RegionOne \
- volumev2 public http://controller:8776/v2/%\(tenant_id\)s
-
- openstack endpoint create --region RegionOne \
- volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
-
- openstack endpoint create --region RegionOne \
- volumev2 admin http://controller:8776/v2/%\(tenant_id\)s
-
- ##安全并配置组件
- 1 安装软件包
- yum install openstack-cinder
-
- 2 编辑 /etc/cinder/cinder.conf,同时完成如下动作:
- ----------------------------------------------------------------
- [database]
- ...
- connection = mysql+pymysql://cinder:cinder@controller/cinder
-
- [DEFAULT]
- ...
- rpc_backend = rabbit
- auth_strategy = keystone
- my_ip = 192.168.17.71
-
- [oslo_messaging_rabbit]
- ...
- rabbit_host = controller
- rabbit_userid = openstack
- rabbit_password = openstack
-
- [keystone_authtoken]
- ...
- auth_uri = http://controller:5000
- auth_url = http://controller:35357
- memcached_servers = controller:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = cinder
- password = cinder
-
- [oslo_concurrency]
- ...
- lock_path = /var/lib/cinder/tmp
-
- 3 初始化块设备的数据库
- su -s /bin/sh -c "cinder-manage db sync" cinder
-
- ----------------------------------------------------------------
- ##配置计算节点以使用块设备存储
- 1 编辑文件 /etc/nova/nova.conf 并添加如下到其中:
- ----------------------------------------------------
- [cinder]
- os_region_name = RegionOne
- ----------------------------------------------------
- ##完成安装
- 1 重启API服务
- systemctl restart openstack-nova-api.service
-
- 2 启动块设备并设置为开机自启
- systemctl enable --now openstack-cinder-api.service openstack-cinder-scheduler.service
- 1 安装支持的工具包
- ##安装lvm包:
- yum install lvm2
-
- ##启动LVM的metadata服务并且设置该服务随系统启动:
- systemctl enable --now lvm2-lvmetad.service
-
- 2 创建LVM物理卷/dev/sdb
- pvcreate /dev/sdb
-
- 3 创建 LVM 卷组 cinder-volumes
- vgcreate cinder-volumes /dev/sdb
- 4 只有实例可以访问块存储卷组。不过,底层的操作系统管理这些设备并将其与卷关联。默认情况下,LVM卷扫描工具会扫描``/dev`` 目录,查找包含卷的块存储设备。如果项目在他们的卷上使用LVM,扫描工具检测到这些卷时会尝试缓存它们,可能会在底层操作系统和项目卷上产生各种问题。您必须重新配置LVM,让它只扫描包含``cinder-volume``卷组的设备。编辑``/etc/lvm/lvm.conf``文件并完成下面的操作:
- -------------------------------------------------------
- devices {
- ...
- filter = [ "a/sdb/", "r/.*/"]
- -------------------------------------------------------
- ##如果您的计算节点在操作系统磁盘上使用了 LVM,您也必需修改这些节点上 /etc/lvm/lvm.conf 文件中的过滤器,将操作系统磁盘包含到过滤器中。例如,如果``/dev/sda`` 设备包含操作系统:
- -------------------------------------------------------
-
- filter = [ "a/sdb/", "r/.*/"]
- -------------------------------------------------------
- ##安全并配置组件
- 1 安装软件包
- yum install openstack-cinder targetcli python-keystone
-
- 2 编辑 /etc/cinder/cinder.conf,同时完成如下动作:
- ------------------------------------------------------------
- [database]
- ...
- connection = mysql+pymysql://cinder:cinder@controller/cinder
-
- [DEFAULT]
- ...
- rpc_backend = rabbit
- auth_strategy = keystone
- my_ip = 192.168.17.72
- enabled_backends = lvm
- glance_api_servers = http://controller:9292 --配置镜像服务 API 的位置
-
- [oslo_messaging_rabbit]
- ...
- rabbit_host = controller
- rabbit_userid = openstack
- rabbit_password = openstack
-
- [keystone_authtoken]
- ...
- auth_uri = http://controller:5000
- auth_url = http://controller:35357
- memcached_servers = controller:11211
- auth_type = password
- project_domain_name = default
- user_domain_name = default
- project_name = service
- username = cinder
- password = cinder
-
- [lvm] --配置LVM后端以LVM驱动结束,卷组``cinder-volumes`` ,iSCSI 协议和正确的 iSCSI服务
- ...
- volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
- volume_group = cinder-volumes
- iscsi_protocol = iscsi
- iscsi_helper = lioadm
-
- [oslo_concurrency]
- ...
- lock_path = /var/lib/cinder/tmp
- ------------------------------------------------------------
- ##完成安装
- systemctl enable --enable openstack-cinder-volume.service target.service
- ##验证操作
- 1 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
- . admin-openrc
- 2 列出服务组件以验证是否每个进程都成功启动:
- inder service-list
【注】卷存在热拉伸的问题,在配置过程中需要注意注意卷在挂在时的文件格式和拉伸时的方式。
同样我们也可以通过访问图形节点进行卷的挂载。
这里我们一CentOS为例,去封装一个系统。当然官方也有封装好的可以提供使用:
- ##自己封装:
- 1 下载一个需要封装的系统,并进行安装过程
- ##这里不做具体阐述,可根据自己的需求进行下载和安装
- -----------------------------------------------
- 区别:
- 1 设置selinux开机禁用
- 开机页面-->e ctrl+x 在系统行设置selinux=0
-
- 2 配置selinux 的配置文件
- vi /etc/sysconfig/selinux
- +++++++++++++++++++++
- SELINUX=disabled
- +++++++++++++++++++++
- 3 关闭防火墙
- systemctl disable --now firewalld
- 4 配置网卡信息:
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
- +++++++++++++++++++++
- TYPE=Ethernet
- BOOTROTO=dhpc
- DEVICE=ens33
- ONBOOT=yes
- +++++++++++++++++++++
- 5 添加一个新的IP
- ip addr add 197.169.17.0/24 /dev/eth0
- -----------------------------------------------
-
- ##安装 ACPI 服务--->要使管理程序能够重新启动或关闭实例
- yum install acpid
- systemctl enable acpid
-
- ##配置获取元数据-->实例必须与元数据服务交互,以便在启动时执行几个任务。例如,实例必须获取ssh公钥并运行用户数据脚本。要确保实例执行这些任务,需要安装:
- ##安装一个cloud-initRPM--Ubuntu cloud-init包的一个端口。这是推荐的方法
- yum install cloud-init
-
- ##cloud-utis-growpart,允许分区调整大小为了正确调整根分区的大小,其中包含允许使用cloud-init调整磁盘大小的适当工具
- yum install cloud-utils-growpart
-
- ##cloud-init 通过编辑/etc/cloud/cloud.cfg文件并添加具有不同用户的行来更改所用帐户的名称。
- ---------------------------------------------
- users:
- - name: admin
- (...)
- ---------------------------------------------
-
- ##禁用 zeroconf 路由--要让实例访问元数据服务
- echo "NOZEROCONF=yes" >> /etc/sysconfig/network
- ##配置控制台
- ##编辑/etc/default/grub文件并配置 GRUB_CMDLINE_LINUX选项。删除 并添加到选项。
- ---------------------------------------------------
- rhgb quietconsole=tty0 console=ttyS0,115200n8
- -----------------------------------------------------
-
- ##保存上述修改:
- grub2-mkconfig -o /boot/grub2/grub.cfg
-
- ##关闭实例
- poweroff
-
- ##清理(删除 MAC 地址详细信息)
- virt-sysprep -d centos
-
- ##压缩母镜像
- virt-sparsify --compress centos.qcows /var/tmp/images
-
- ##取消定义 libvirt 域 --libvirt不在管理
- virsh undefine centos
-
- ##镜像上传:使用qemu-img create命令创建的底层图像文件 已准备好上传
【注】当系统中现有的镜像模式和当前自己封装的镜像不匹配时,可以使用admin用户进行自行配置 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。