OpenStack(T版)——网络(Neutron)服务介绍与安装

news2024/9/25 7:18:28

文章目录

  • OpenStack(T版)——网络(Neutron)服务介绍与安装
  • 安装和配置(controller)
    • 准备
      • (1)创建数据库
      • (2)加载admin user的环境变量
      • (3)创建服务凭证
    • 配置Neutron网络服务组件
      • (1)安装软件
      • (2)编辑文件/etc/neutron/neutron.conf,完成以下操作
      • (3)配置Layer 2 (ML2)plug-in模块
      • (4)配置桥接代理
      • (5)配置三层代理
      • (6)配置DHCP代理
      • (7)配置元数据代理
      • (8)配置计算服务以使用网络服务
    • 完成安装
  • 安装和配置(compute)
    • 网络服务组件安装和配置通用组件
      • (1)安装软件包
      • (2)配置通用组件
    • 配置网络核心组件
    • 配置计算服务组件
    • 完成安装
  • 验证

OpenStack(T版)——网络(Neutron)服务介绍与安装

OpenStack Neutron 就是为 OpenStack 虚拟机提供网络连接的服务。类比于现实生活中的网络,就像我们需要连接电脑、手机等设备到路由器上才能上网一样,虚拟机也需要连接到虚拟网络中才能进行通信和访问外部网络。而 Neutron 就是提供这个连接的服务。它能够帮助用户灵活地管理虚拟机的网络连接,包括分配 IP 地址、设置子网、路由器等网络设备,以及控制网络访问权限等。同时,Neutron 还支持多种网络虚拟化技术,能够让多个虚拟网络之间互相隔离和通信。

Flat、Local VLAN、VXLAN 和 GRE 都是 OpenStack Neutron 中的网络虚拟化技术,用于在虚拟机之间或虚拟机与外部网络之间建立虚拟网络连接

下面分别解释这四种技术的含义和特点:

Flat技术最简单,只是直接把数据包发送到物理网络,不支持流量隔离和管理

VLAN技术基于虚拟局域网,将虚拟网络划分成多个逻辑网络,适用于单一物理网络环境下的虚拟网络;

VXLAN和GRE技术则是用UDP和IP协议将虚拟网络划分成多个逻辑网络,适用于跨物理网络或数据中心之间的虚拟网络部署。

安装和配置(controller)

准备

ens33(controller,compute)

[root@controller ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=none
DEVICE=ens33
ONBOOT=yes

(1)创建数据库

①在操作系统终端连接数据库

[root@controller ~]# mysql -u root -p000000

②创建Neutron数据库

MariaDB [(none)]> CREATE DATABASE neutron;

③Neutron数据库的访问权限设置

MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY '000000';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%'  IDENTIFIED BY '000000'; 

④退出数据库

MariaDB [(none)]> exit

(2)加载admin user的环境变量

[root@controller ~]# source admin-openrc.sh 

(3)创建服务凭证

①创建Neutron用户

[root@controller ~]# openstack user create --domain default --password-prompt neutron
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | default                          |
| enabled             | True                             |
| id                  | 95213d68498d48efae7f986fc56c20ba |
| name                | neutron                          |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+

②将admin role 赋予 neutron user 和service project

[root@controller ~]# openstack role add --project service --user neutron admin

③创建Neutron 网络服务 service entity

[root@controller ~]# openstack service create --name neutron --description "OpenStack Networking" network
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Networking             |
| enabled     | True                             |
| id          | 4cd0a74d9e824a2186bd5c8a25f1ce8c |
| name        | neutron                          |
| type        | network                          |
+-------------+----------------------------------+

(4)创建Neutron网络服务组件的API endpoint

[root@controller ~]# openstack endpoint create --region RegionOne network public http://controller:9696
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 5d704d8177b94d22814c77200fbf7502 |
| interface    | public                           |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | a868e8135c7242be99881bf452a826cb |
| service_name | neutron                          |
| service_type | network                          |
| url          | http://controller:9696           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  network internal http://controller:9696
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 247feaa6e95346b78eb5dbb6aecbfbb7 |
| interface    | internal                         |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | a868e8135c7242be99881bf452a826cb |
| service_name | neutron                          |
| service_type | network                          |
| url          | http://controller:9696           |
+--------------+----------------------------------+

[root@controller ~]# openstack endpoint create --region RegionOne  network admin http://controller:9696
+--------------+----------------------------------+
| Field        | Value                            |
+--------------+----------------------------------+
| enabled      | True                             |
| id           | 2132cb74585342ccb6728889a7726fd3 |
| interface    | admin                            |
| region       | RegionOne                        |
| region_id    | RegionOne                        |
| service_id   | a868e8135c7242be99881bf452a826cb |
| service_name | neutron                          |
| service_type | network                          |
| url          | http://controller:9696           |
+--------------+----------------------------------+

配置Neutron网络服务组件

官方文档

image-20230627180839729

Neutron网络服务组件的设计架构可以分为两种,提供商网络和自服务网络。

  • 提供商网络比较简单,虚拟机实例连接公共网络(Public Network),没有自服务网络(Self-Service Network)、路由和浮动IP地址(Floatiing IP address),只有管理员或者有权限的用户可以操作公共网络。在这种架构下,虚拟机实例只能通过公共网络与外部网络通信,不能直接访问公共网络之外的网络。
  • 自服务网络是在简单架构的基础上增加了第三层服务,支持自服务(Self-Service)网络。在这种架构下,管理员和有权限的用户可以管理自服务网络,自服务网络可以分配给虚拟机实例,并且通过自服务网络可以访问外部网络。此外,自服务网络还支持路由和浮动IP地址,可以实现更加灵活的网络管理。

自服务网络比提供商网络更加灵活,可以实现更加复杂的网络拓扑结构,满足更加多样化的应用场景

本次采用自服务网络进行配置

以下操作均在controller节点执行

(1)安装软件

[root@controller ~]# yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

(2)编辑文件/etc/neutron/neutron.conf,完成以下操作

①在[database]部分中,配置数据库访问

[root@controller ~]# vim /etc/neutron/neutron.conf
[database]
connection = mysql+pymysql://neutron:000000@controller/neutron

②在[DEFAULT]部分中,启动 Layer 2 (ML2) plug-in、路由服务和IP地址重叠功能

[DEFAULT]
core_plugin = ml2
service_plugins = router
allow_overlapping_ips = true

③在[DEFAULT]部分中,配置RabbitMQ 消息队列访问

[DEFAULT]
transport_url = rabbit://openstack:000000@controller

④在[DEFAULT][keystone_authtoken]部分中,配置身份服务访问

[DEFAULT]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000

⑤在[DEFAULT][nova]部分中,配置Neutron网络服务通知Nova计算服务关于网络拓扑的改变

[DEFAULT]
notify_nova_on_port_status_changes = true
notify_nova_on_port_data_changes = true
# 这两个参数的作用是通知 Nova 计算服务组件有关端口状态和数据变化的信息
# 具体来说,当虚拟机实例的网络端口状态发生变化时
# 例如端口被创建、更新或删除时,Neutron 会将相关信息发送给 Nova
# 以便 Nova 可以更新虚拟机实例的状态信息
[nova]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = nova
password = 000000

⑥在[oslo_concurrency]部分中,配置锁定路径

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

(3)配置Layer 2 (ML2)plug-in模块

ML2 plug-in使用桥接机制为虚拟机实例桥接和交换网络信息

①编辑文件 /etc/neutron/plugins/ml2/ml2_conf.ini,在[ml2]项,完成以下操作

ml2_conf.ini

①在[ml2]部分中,完成以下操作

[root@controller ~]# vim /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]部分中,完成以下操作

[ml2_type_flat]
flat_networks = provider  # 定义 flat 类型网络的网络名称

[ml2_type_vxlan]中,配置 VXLAN为 Private Network提供的标识范围

[ml2_type_vxlan]
vni_ranges = 1:1000    # 定义 VXLAN 类型网络的 VNI 范围

④在[securitygroup]项,启用ipsect提高安全组规则的效率

[securitygroup]
enable_ipset = true   # 这个参数用来启用 ipset 防火墙驱动

(4)配置桥接代理

Linux 桥接代理为实例构建第 2 层(桥接和交换)虚拟网络基础设施并处理安全组

编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件并完成以下操作

linuxbridge_agent.ini

①在[linux_bridge]部分中,将提供商虚拟网络映射到提供商物理网络接口

[root@controller ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:ens33 # 定义 Linux Bridge 网络服务的物理网络映射关系。
# PROVIDER_INTERFACE_NAME 表示物理网络接口的名称,这个名称需要根据实际情况进行配置。

②在[vxlan]项,启用 VXLAN功能和 Layer 2 population,配置处理 Overlay Network 的物理网络端口的IP地址

[vxlan]
enable_vxlan = true       
local_ip = 192.168.200.10
l2_population = true 
# enable_vxlan:表示是否启用 VXLAN 技术
# local_ip表示 VXLAN 网络隧道的本地 IP 地址
# l2_population表示是否启用 L2 Population 技术

③在[securitygroup]部分中,启用安全组并配置 Linux 桥接 iptables 防火墙驱动程序

[securitygroup]
enable_security_group = true  
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
# firewall_driver:表示防火墙驱动类型
# enable_security_group:表示是否启用安全组功能。

④修改/etc/sysctl.conf写入如下内容

[root@controller ~]# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
# 当这些参数的值为 1 时,Linux Bridge 桥接的数据包会经过 iptables 或 ip6tables 处理
# 从而可以实现访问控制、网络隔离等安全措施。
[root@controller ~]# modprobe br_netfilter # 加载 br_netfilter 内核模块。
[root@controller ~]# sysctl -p
# 用于加载系统的 sysctl 参数文件

(5)配置三层代理

编辑/etc/neutron/l3_agent.ini文件并完成以下操作

[DEFAULT]部分中,配置 Linux 桥接接口驱动程序

[root@controller ~]# vim /etc/neutron/l3_agent.ini
[DEFAULT]
interface_driver = linuxbridge  
# 指定了 Neutron 使用的网络插件,即 Linux Bridge 插件。

(6)配置DHCP代理

DHCP代理为虚拟网络提供DHCP服务。

编辑/etc/neutron/dhcp_agent.ini文件并完成以下操作

[root@controller ~]# vim /etc/neutron/dhcp_agent.ini
[DEFAULT]
interface_driver = linuxbridge                  
dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq  
enable_isolated_metadata = true                 
# interface_driver指定了 Neutron 使用的网络插件
# dhcp_driver指定了 Neutron 使用的 DHCP 代理程序
# enable_isolated_metadata启用了 Neutron 的元数据服务。

(7)配置元数据代理

元数据代理项实例提供配置信息

编辑/etc/neutron/metadata_agent.ini文件并完成以下操作

①在 部分中[DEFAULT],配置元数据主机和共享密钥

[root@controller ~]# vim /etc/neutron/metadata_agent.ini
[DEFAULT]
nova_metadata_host = controller
metadata_proxy_shared_secret = 000000
# nova_metadata_host指定了 Nova 元数据服务的主机地址,即控制节点的 IP 地址或主机名
# metadata_proxy_shared_secret指定了 Nova 元数据代理程序的共享密钥
# 即元数据服务和元数据代理程序之间进行通信时使用的密钥

(8)配置计算服务以使用网络服务

必须安装 Nova 计算服务才能完成此步骤

编辑该/etc/nova/nova.conf文件并执行以下操作

①在[neutron]部分中,配置访问参数、启用元数据代理并配置密钥

[root@controller ~]# vim /etc/nova/nova.conf 
[neutron]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000
service_metadata_proxy = true
metadata_proxy_shared_secret = 000000

完成安装

①网络服务初始化脚本需要一个指向 /etc/neutron/plugin.iniML2 插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini.如果此符号链接不存在,请使用以下命令创建它

[root@controller ~]# ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

②同步数据库

[root@controller ~]# su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron

③重启API服务

[root@controller ~]# systemctl restart openstack-nova-api.service

④启动网络服务并设置开机自启

[root@controller ~]# systemctl start neutron-server.service neutron-linuxbridge-agent.service  neutron-dhcp-agent.service  neutron-metadata-agent.service neutron-l3-agent   &&  systemctl enable neutron-server.service   neutron-linuxbridge-agent.service neutron-dhcp-agent.service   neutron-metadata-agent.service neutron-l3-agent
# 自行查看日志文件没有error就可以了

安装和配置(compute)

网络服务组件安装和配置通用组件

(1)安装软件包

[root@compute ~]# yum install -y  openstack-neutron-linuxbridge ebtables ipset

(2)配置通用组件

Neutron网络服务组件的通用部分包括认证机制、消息队列和plug-in

①编辑/etc/neutron/neutron.conf文件并完成以下操作

[database]部分中,注释掉所有connection选项,因为计算节点不直接访问数据库

②在[DEFAULT]部分中,配置RabbitMQ 消息队列访问

[root@compute ~]# vim /etc/neutron/neutron.conf
[DEFAULT]
transport_url = rabbit://openstack:000000@controller

③在[DEFAULT][keystone_authtoken]部分中,配置身份服务访问

[DEFAULT]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = neutron
password = 000000

④在[oslo_concurrency]部分中,配置锁定路径

[oslo_concurrency]
lock_path = /var/lib/neutron/tmp

配置网络核心组件

官方文档

image-20230627230614006

(1)编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

①在[linux_bridge]部分中,将Public Network 虚拟网络端口映射到物理网络端口

[root@compute ~]# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge]
physical_interface_mappings = provider:ens33
# Linux Bridge 插件将使用 ens34 网卡来连接 provider 物理网络
# 实现虚拟网络和物理网络之间的数据交换。

②在[vxlan]部分中,启用VXLAN功能和 Layer 2 population,配置处理Overlay Network 的物理网络端口的IP地址

[vxlan]
enable_vxlan = true
local_ip = 192.168.200.20
l2_population = true

③在[securitygroup]部分中,启用安全组并配置 Linux 桥接 iptables 防火墙驱动程序

[securitygroup]
enable_security_group = true
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

⑤添加/etc/sysctl.conf内容

[root@compute ~]# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
[root@compute ~]# modprobe br_netfilter 
[root@compute ~]# sysctl -p

配置计算服务组件

(1)编辑/etc/nova/nova.conf文件并完成以下操作

[neutron]部分中,配置访问参数

[root@compute ~]# vim /etc/nova/nova.conf 
[neutron]
auth_url = http://controller:5000
auth_type = password
project_domain_name = default
user_domain_name = default
region_name = RegionOne
project_name = service
username = neutron
password = 000000

完成安装

重新启动计算服务

[root@compute ~]#  systemctl restart openstack-nova-compute.service

启动bridge agent 并设置为开机自启

[root@compute ~]#  systemctl start neutron-linuxbridge-agent.service && systemctl enable neutron-linuxbridge-agent.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/neutron-linuxbridge-agent.service to /usr/lib/systemd/system/neutron-linuxbridge-agent.service

验证

(1)加载环境变量文件

[root@controller ~]# source admin-openrc.sh

(2) 到controller验证 openstack network agent list

image-20230628182402116

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序数据库 TDengine 与腾讯云多个产品线完成兼容性互认证明

随着数字经济蓬勃发展,数据成为驱动企业数字化转型的关键生产要素,如何加强对数据资源的治理利用、实现数据洞察、激活数据价值正成为亟待解决的问题。在此背景下,数据库与操作系统、云平台等国产化软件相互结合赋能成为解决问题的思路之一。…

Java中的String类真的不可变吗?java面试常见问题

其实在Java中,String类被final修饰,主要是为了保证字符串的不可变性,进而保证了它的安全性。那么final到底是怎么保证字符串安全性的呢?接下来就让我们一起来看看吧。 一. final的作用 1. final关键词修饰的类不可以被其他类继承…

车载通讯USB开发,增强车内娱乐体验

车载通讯开发中使用的 USB 协议常见于车内娱乐系统、车载设备和汽车诊断工具等应用。USB(Universal Serial Bus,通用串行总线)是一种常见的数字通信接口标准,用于连接计算机、外部设备及其他电子设备之间的数据传输和通信。 USB …

Python面向对象编程到底怎么用才是最好的(两个小案例告诉你其中优势)

目录 前言案例一:图书管理系统案例二:汽车制造系统 总结 前言 大家好,我是辣条哥~ 当谈到Python编程语言时,面向对象编程(Object-Oriented Programming,简称OOP)是一个重要的概念。 OOP是一种…

Leetcode52 N 皇后 II

n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 示例 1: 输入:n 4 输出:2 解释:如上图所示&…

uin-app项目实现pdf文件预览以及下载

由于项目需要,需要对于pdf格式的文件进行预览由用户进行选择性下载,查阅相关文档后方知针对于这种 pdf.js有奇效 一、下载 官网地址https://mozilla.github.io/pdf.js/getting_started/#download 文档下载解压成功后,按照这种格式放入uin-…

认识GBK编码和UTF-8编码

GBK编码和UTF-8编码是两种不同的字符编码方式; 1、主要区别如下: (1)字符集范围不同:GBK编码支持中文字符和日韩字符,而UTF-8编码支持全球范围内的字符; (2)编码方式不…

4.28 poll API介绍及代码编写

4.28 poll API介绍及代码编写 #include <poll.h> struct pollfd{int fd;//委托内核检测的文件描述符short events;//委托内核检测文件描述符的什么事件short revents;//文件描述符实际发生的事件 }; int poll(struct pollfd *fds,nfds_t nfds,int timeout);-参数&#x…

EDA云实证Vol.13:暴力堆机器之王——Calibre

Siemens的Calibre是业内权威的版图验证软件&#xff0c;被各大Foundry厂广泛认可。用户可以直接在Virtuoso界面集成Calibre接口&#xff0c;调用版图验证结果数据&#xff0c;使用起来极为方便。 今天&#xff0c;我们就来聊聊这款软件。 版图验证是芯片设计中非常重要的一环…

3.5.1MapReduce原理详解

单机程序计算流程 输入数据—>读取数据—>处理数据—>写入数据—>输出数据 Hadoop计算流程 input data&#xff1a;输入数据 InputFormat&#xff1a;对数据进行切分&#xff0c;格式化处理 map&#xff1a;将前面切分的数据做map处理(将数据进行分类&#xf…

怎么写一份好的接口文档?

目录 前言&#xff1a; 接口文档结构 参数说明 示例 错误码说明 语言基调通俗易懂 及时更新与维护 总结 前言&#xff1a; 写一份好的接口文档有助于开发者理解和使用你的API。&#xff0c; 编写一份优秀的接口文档会让软件开发中变得更加轻松&#xff0c;更有效率。…

一个大于6的偶数,能被两个质数相加得到

一个大于6的偶数,能被两个质数相加得到 1.描述 证明&#xff1a;一个大于6的偶数,能被两个质数相加得到 2.代码 先判断输入的数据是不是大于6的偶数 编写判断某个数是不是质数的方法 从中间两侧把数相加看看能不能得到对应的偶数两个奇数相加能够得到的值 public class Main…

linux入门之进程概念上(冯诺依曼系统,系统概念与定位,PCB,fork初识)

文章目录 目录 一、认识冯诺依曼系统 二、操作系统 1.概念 2.设计os的目的 3.定位 4.如何理解管理 三、系统调用和库函数 四、进程 1.基本概念 2.描述进程-PCB 3.组织进程 4.查看进程 5.通过系统调用获取进程标识符 6.通过系统调用创建进程-fork初识 6.1fork原理…

Spring(9) IOC容器中的单例Bean的线程安全问题

目录 1.知识点回顾2.线程安全3.总结 1.知识点回顾 在 Spring 中我们可以通过 Scope 注解来指定 Bean 的创建方式。 Servcie Scope("singleton") public class UserServiceImpl implements UserService {}Scope 注解的值有两种&#xff1a; singleton&#xff1a;B…

vue3使用高德地图实现点击获取经纬度

话不多说直接上干活 在此之前你需要有高德地图的 key&#xff0c;这个自己去申请即可 1&#xff0c;首先需要在终端安装 npm i amap/amap-jsapi-loader --save 2&#xff0c;准备一个容器 <template><div id"container"></div> </templat…

Redis+Lua脚本解决高并发情况下库存超卖的问题

文章目录 一、实现思路二、实现代码 一、实现思路 二、实现代码 order.lua脚本代码&#xff1a; -- 参数列表 local productIdStr ARGV[1] local productNameStr ARGV[2] local cartQuantityStr ARGV[3] local orderId ARGV[4] local userId ARGV[5] local orderDate A…

Android 控件颜色与实际不符「解决方案」

问题复现 背景色设置为 绿色&#xff0c;然而 Button 控件却显示 紫色 解决方案 这是由于 Theme 修改导致&#xff0c;只需要修改配置文件 themes.xml 中 parent 属性 即可 如果找不到该文件&#xff0c;先将工程结构展示改为 Project 即可 原配置&#xff1a; <style nam…

【网络智能化】网络杂谈(9)之如何做到网络管理智能化

涉及知识点 什么是网络管理智能化&#xff0c;基于专家系统的网络管理&#xff0c;基于智能 Agent 的网络管理&#xff0c;基于计算智能的宽带网络管理&#xff0c;深入了解网络管理智能化技术。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可去其主页…

软件业务连续性管理的意义是什么?

软件业务连续性管理是指在软件开发和运营过程中&#xff0c;确保业务能够持续进行的管理方法和实践&#xff0c;它是一种综合性的管理方法&#xff0c;旨在确保在软件系统出现故障、灾难或其他不可预测的情况时&#xff0c;能够快速、有效地恢复业务&#xff0c;以最大程度地减…

【数据分享】全国县市2000-2021年教育、卫生和社会保障数据(excel\shp格式)

《中国县域统计年鉴》是一部全面反映我国县域社会经济发展状况的资料性年鉴&#xff0c;收录了上一年度全国2000多个县域单位的基本情况、综合经济、农业、工业、教育、卫生、社会保障等方面的资料。 之前基于《中国县域统计年鉴》我们分享了2000至2021年的综合经济数据和农业…