云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通
目录
一、实验
1. 环境
2.配置存储挂载
3.云主机实例连接外部网络(SNAT)
4.外部网络连接云主机实例(DNAT)
二、问题
1.云主机 ping 不通外部网络
2.nova list 查看云主机列表报错
3.nova list 与 virsh list --all有何区别
4.OpenStack如何查看虚拟路由器
5.OpenStack如何查看虚拟DHCP服务器
一、实验
1. 环境
(1)宿主机
表1 宿主机
| 主机 | 架构 | IP地址 |
| openstack | all in one | 192.168.199.201 |
(2)云主机
表2 云主机
| 主机 | 架构 | IP地址 | 浮动IP |
| cs_01 | 云主机 | 172.25.1.109 | 192.168.199.87 |
| cs_02 | 云主机 | 172.25.2.107 | 192.168.199.82 |
2.配置存储挂载
(1)项目devops03用户user01


(2)创建卷

(3)创建中

(4)完成

(5)登录云主机cs_01控制台
(6)查看分区情况

(7)管理与连接卷

(8)连接中

(9)完成

(10)云主机cs_01控制台查看分区情况
新增磁盘vdb

(11) 分区


(12)查看

(13)格式化为ext4文件系统

(14)挂载(会弹出提示,不影响最终挂载)

(15)查看挂载情况

3.云主机实例连接外部网络(SNAT)
(1)查看当前网络拓扑

(2)分配浮动IP给云主机cs_01

(3)查看

(4)管理浮动IP的关联

(5)已绑定

(6)查看实例情况

(7)分配浮动IP给云主机cs_02

(8)查看

(9)点击”绑定浮动IP“

(10)管理浮动IP的关联

(11)已绑定

(12)宿主机查看路由信息


(13)宿主机添加流表信息

(16)云主机 ping 外部网络成功

4.外部网络连接云主机实例(DNAT)
(1)查看当前安全组

(2)添加规则

(3)查看安全组规则

(4)继续添加规则
(4)再次查看查看安全组规则
(5)查看网络拓扑图

(6)Windows11系统 ping 云主机cs_01

(7)Windows11系统 ping 云主机cs_02

二、问题
1.云主机 ping 不通外部网络
(1)报错

(2)原因分析
未配置流表。
OpenFlow是用于管理交换机流表的协议,ovs-ofctl是Open vSwitch提供的命令行工具。在没有配置OpenFlow控制器的模式下,用户可以使用ovs-ofctl命令通过OpenFlow协议连接Open vSwitch来创建、修改或删除Open vSwitch中的流表项,并对Open vSwitch的运行状况进行动态监控。ovs-ofctl关于流表管理的常用命令如下表所示。

对于add-flow、add-flows和mod-flows这3个命令,还需要指定要执行的动作actions=[target],[target],一个流规则中可能有多个动作,按照指定的先后顺序执行。
常见的流表操作如下表所示。

在OpenFlow白皮书中,Flow被定义为某个特定的网络流量。例如,一个TCP连接就是一个Flow,或者从某个IP地址发出来的数据包,都可以被认为是一个Flow。支持OpenFlow协议的交换机应该包括一个或多个流表,流表中的条目包含:数据包头的信息、匹配成功后要执行的指令和统计信息。当数据包进入OVS后,会将数据包和流表中的流表项进行匹配,如果发现了匹配的流表项,则执行该流表项中的指令集。相反,如果数据包在流表中没有发现任何匹配,OVS会通过控制通道把数据包发到OpenFlow控制器中。在OVS中,流表项作为ovs-ofctl的参数,采用如下的格式:字段=值,如果有多个字段,可以用逗号或空格分开,一些常用的字段列举如下表所示。

(3)解决方法
命令行输入添加流表。
① 基础网络配置
1)br-ex
连接外部网络(external)2)br-tun
连接隧道网络(tunnel)3)br-int
综合网桥(integration)
② 查看网桥(虚拟交换机)的基本信息
[root@openstack ~]# ovs-vsctl show
db90689c-619b-4abe-bcbf-16563efed45bManager "ptcp:6640:127.0.0.1"is_connected: trueBridge br-intController "tcp:127.0.0.1:6633"is_connected: truefail_mode: securePort "qg-ff43c0db-46"tag: 3Interface "qg-ff43c0db-46"type: internalPort "tap2d46a37a-12"tag: 3Interface "tap2d46a37a-12"type: internalPort br-intInterface br-inttype: internalPort "qr-68faaa7e-cc"tag: 1Interface "qr-68faaa7e-cc"type: internalPort "tapd441263b-ea"tag: 2Interface "tapd441263b-ea"type: internalPort "qvo7b9dd20c-6e"tag: 1Interface "qvo7b9dd20c-6e"Port "qvo04708a06-18"tag: 2Interface "qvo04708a06-18"Port int-br-exInterface int-br-extype: patchoptions: {peer=phy-br-ex}Port "tap1a095310-18"Interface "tap1a095310-18"type: internalPort "tapc64270af-df"tag: 1Interface "tapc64270af-df"type: internalPort "qr-df3559a2-e7"tag: 2Interface "qr-df3559a2-e7"type: internalPort patch-tunInterface patch-tuntype: patchoptions: {peer=patch-int}Bridge br-tunController "tcp:127.0.0.1:6633"is_connected: truefail_mode: securePort patch-intInterface patch-inttype: patchoptions: {peer=patch-tun}Port br-tunInterface br-tuntype: internalBridge br-exController "tcp:127.0.0.1:6633"is_connected: truefail_mode: securePort br-exInterface br-extype: internalPort phy-br-exInterface phy-br-extype: patchoptions: {peer=int-br-ex}Port "ens33"Interface "ens33"ovs_version: "2.7.3"




③ 查看br-ex虚拟交换机上各端口的状态
输出的结果中包含了各端口上收到的数据包数,字节数,丢包数,错误数据包数等。
[root@openstack ~]# ovs-ofctl dump-flows br-ex
NXST_FLOW reply (xid=0x4):cookie=0x0, duration=25482.541s, table=0, n_packets=964, n_bytes=43532, idle_age=10005, in_port=2 actions=ALcookie=0x3ee824d85c7adea0, duration=34310.012s, table=0, n_packets=369061, n_bytes=82371938, idle_age=0, pr


④ 查看br-ex桥的流表信息(重点关注序号)
ovs-ofctl show br-ex
[root@openstack ~]# ovs-ofctl show br-ex
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000c295385ce
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_1(ens33): addr:00:0c:29:53:85:ceconfig: 0state: 0current: 1GB-FD COPPER AUTO_NEGadvertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEGsupported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEGspeed: 1000 Mbps now, 1000 Mbps max2(phy-br-ex): addr:12:67:6d:8e:d4:dcconfig: 0state: 0speed: 0 Mbps now, 0 Mbps maxLOCAL(br-ex): addr:00:0c:29:53:85:ceconfig: 0state: 0speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0


⑤查看br-int桥的流表信息(重点关注序号)
[root@openstack ~]# ovs-ofctl show br-int
OFPT_FEATURES_REPLY (xid=0x2): dpid:000006b7f9bd7d47
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_2(patch-tun): addr:c2:48:6b:4a:78:56config: 0state: 0speed: 0 Mbps now, 0 Mbps max10(int-br-ex): addr:b6:76:78:81:41:ddconfig: 0state: 0speed: 0 Mbps now, 0 Mbps max11(qr-68faaa7e-cc): addr:00:00:00:00:10:c3config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max12(qr-df3559a2-e7): addr:00:00:00:00:e0:99config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max13(qg-ff43c0db-46): addr:00:00:00:00:20:5dconfig: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max14(tap1a095310-18): addr:00:00:00:00:10:80config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max15(tap2d46a37a-12): addr:00:00:00:00:f0:9fconfig: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max16(tapc64270af-df): addr:02:ec:b9:56:6c:04config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max17(tapd441263b-ea): addr:00:00:00:00:b0:39config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max18(qvo04708a06-18): addr:0a:84:80:cb:e4:50config: 0state: 0current: 10GB-FD COPPERspeed: 10000 Mbps now, 0 Mbps max19(qvo7b9dd20c-6e): addr:7a:22:2b:be:43:4cconfig: 0state: 0current: 10GB-FD COPPERspeed: 10000 Mbps now, 0 Mbps maxLOCAL(br-int): addr:06:b7:f9:bd:7d:47config: PORT_DOWNstate: LINK_DOWNspeed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0



⑥查看br-int虚拟交换机上各端口的状态
[root@openstack ~]# ovs-ofctl dump-flows br-int
NXST_FLOW reply (xid=0x4):cookie=0xc40afaa44e3bf01c, duration=35262.046s, table=0, n_packets=13199, n_bytes=1029702, idle_age=1, priority=2,in_port=10 actions=drcookie=0xc40afaa44e3bf01c, duration=33864.921s, table=0, n_packets=1447, n_bytes=141992, idle_age=10954, priority=9,in_port=18 actions=cookie=0xc40afaa44e3bf01c, duration=33022.776s, table=0, n_packets=119, n_bytes=11871, idle_age=16595, priority=9,in_port=19 actions=recookie=0x0, duration=4.201s, table=0, n_packets=0, n_bytes=0, idle_age=4, in_port=13 actions=ALLcookie=0xc40afaa44e3bf01c, duration=33864.919s, table=0, n_packets=0, n_bytes=0, idle_age=33864, priority=10,icmp6,in_port=18,icmp_typemit(,24)cookie=0xc40afaa44e3bf01c, duration=33022.774s, table=0, n_packets=0, n_bytes=0, idle_age=33022, priority=10,icmp6,in_port=19,icmp_typemit(,24)cookie=0xc40afaa44e3bf01c, duration=33864.917s, table=0, n_packets=115, n_bytes=4830, idle_age=10959, priority=10,arp,in_port=18 actioncookie=0xc40afaa44e3bf01c, duration=33022.772s, table=0, n_packets=10, n_bytes=420, idle_age=16593, priority=10,arp,in_port=19 actions=cookie=0xc40afaa44e3bf01c, duration=35263.424s, table=0, n_packets=2752, n_bytes=239758, idle_age=10954, priority=0 actions=resubmit(,6cookie=0xc40afaa44e3bf01c, duration=35263.425s, table=23, n_packets=0, n_bytes=0, idle_age=35263, priority=0 actions=dropcookie=0xc40afaa44e3bf01c, duration=33864.920s, table=24, n_packets=0, n_bytes=0, idle_age=33864, priority=2,icmp6,in_port=18,icmp_type0::f816:3eff:fedb:3d7d actions=resubmit(,60)cookie=0xc40afaa44e3bf01c, duration=33022.775s, table=24, n_packets=0, n_bytes=0, idle_age=33022, priority=2,icmp6,in_port=19,icmp_type0::f816:3eff:fe35:1ec9 actions=resubmit(,60)cookie=0xc40afaa44e3bf01c, duration=33864.918s, table=24, n_packets=115, n_bytes=4830, idle_age=10959, priority=2,arp,in_port=18,arp_spions=resubmit(,25)cookie=0xc40afaa44e3bf01c, duration=33022.773s, table=24, n_packets=10, n_bytes=420, idle_age=16593, priority=2,arp,in_port=19,arp_spa=ns=resubmit(,25)cookie=0xc40afaa44e3bf01c, duration=35263.423s, table=24, n_packets=0, n_bytes=0, idle_age=35263, priority=0 actions=dropcookie=0xc40afaa44e3bf01c, duration=33864.922s, table=25, n_packets=1560, n_bytes=146682, idle_age=10954, priority=2,in_port=18,dl_src=actions=resubmit(,60)cookie=0xc40afaa44e3bf01c, duration=33022.778s, table=25, n_packets=127, n_bytes=12151, idle_age=16593, priority=2,in_port=19,dl_src=fations=resubmit(,60)cookie=0xc40afaa44e3bf01c, duration=35263.424s, table=60, n_packets=4439, n_bytes=398591, idle_age=10954, priority=3 actions=NORMAL

⑦修改br-ex 流表信息
[root@openstack ~]# ovs-ofctl del-flows br-ex "in_port=2"
[root@openstack ~]# ovs-ofctl add-flow br-ex in_port=1,actions=all

⑧ 修改br-int 流表信息
[root@openstack ~]# ovs-ofctl del-flows br-int "in_port=13"
[root@openstack ~]# ovs-ofctl add-flow br-int in_port=10,actions=all

⑨ 云主机 ping 外部网络成功

2.nova list 查看云主机列表报错
(1)报错


(2)原因分析
未配置项目文件。
(3)解决方法
① 复制配置文件

② 编辑配置文件并刷新


③ 再次查看云主机列表,成功


3.nova list 与 virsh list --all有何区别
(1)nova list命令查看云主机


(2)virsh list --all命令查看KVM虚拟机


① 查看云主机cs_01进程


②查看云主机cs_02进程


③ 查看配置文件目录

④ 云主机cs_01 配置文件关键接口信息

⑤云主机cs_02配置文件关键接口信息

4.OpenStack如何查看虚拟路由器
(1)查看网络隔离环境
[root@openstack ~]# ip netns
qdhcp-8b5a5b08-5516-4928-b8b6-8e14476cad0f
qdhcp-0edffd85-3d72-4c82-a73f-01115e32cb4b
qdhcp-3fe9f084-e8f3-4b85-9edb-65db0d4e2679
qdhcp-cd51a8fe-af2e-4e4d-9aaf-4e5874c24eca
qrouter-26af4ac5-5aba-4cb3-bd34-58d1b3701a61


(2) bash命令进入虚拟路由器查看
[root@openstack ~]# ip netns exec qrouter-26af4ac5-5aba-4cb3-bd34-58d1b3701a61 /bin/bash
[root@openstack ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
14: qr-68faaa7e-cc: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:ab:15:c2 brd ff:ff:ff:ff:ff:ffinet 172.25.2.254/24 brd 172.25.2.255 scope global qr-68faaa7e-ccvalid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:feab:15c2/64 scope link valid_lft forever preferred_lft forever
15: qr-df3559a2-e7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:02:a4:00 brd ff:ff:ff:ff:ff:ffinet 172.25.1.254/24 brd 172.25.1.255 scope global qr-df3559a2-e7valid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:fe02:a400/64 scope link valid_lft forever preferred_lft forever
16: qg-ff43c0db-46: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:23:7b:27 brd ff:ff:ff:ff:ff:ffinet 192.168.199.84/24 brd 192.168.199.255 scope global qg-ff43c0db-46valid_lft forever preferred_lft foreverinet 192.168.199.87/32 brd 192.168.199.87 scope global qg-ff43c0db-46valid_lft forever preferred_lft foreverinet 192.168.199.82/32 brd 192.168.199.82 scope global qg-ff43c0db-46valid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:fe23:7b27/64 scope link valid_lft forever preferred_lft forever[root@openstack ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.2.254 0.0.0.0 UG 0 0 0 tapc64270af-df
172.25.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tapc64270af-df[root@openstack ~]# exit
exit
查看IP信息


查看路由信息


5.OpenStack如何查看虚拟DHCP服务器
(1)查看
[root@openstack ~]# ip netns
qdhcp-8b5a5b08-5516-4928-b8b6-8e14476cad0f
qdhcp-0edffd85-3d72-4c82-a73f-01115e32cb4b
qdhcp-3fe9f084-e8f3-4b85-9edb-65db0d4e2679
qdhcp-cd51a8fe-af2e-4e4d-9aaf-4e5874c24eca
qrouter-26af4ac5-5aba-4cb3-bd34-58d1b3701a61


(2) bash命令进入第1个DHCP服务器查看
[root@openstack ~]# ip netns exec qdhcp-3fe9f084-e8f3-4b85-9edb-65db0d4e2679 /bin/bash[root@openstack ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.199.2 0.0.0.0 UG 0 0 0 tap2d46a37a-12
192.168.199.0 0.0.0.0 255.255.255.0 U 0 0 0 tap2d46a37a-12[root@openstack ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
18: tap2d46a37a-12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:bb:04:3c brd ff:ff:ff:ff:ff:ffinet 192.168.199.80/24 brd 192.168.199.255 scope global tap2d46a37a-12valid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:febb:43c/64 scope link valid_lft forever preferred_lft forever[root@openstack ~]# exit
exit
查看路由信息
查看IP信息


(3) bash命令进入第2个DHCP服务器查看
[root@openstack ~]# ip netns exec qdhcp-cd51a8fe-af2e-4e4d-9aaf-4e5874c24eca /bin/bash[root@openstack ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.25.3.0 0.0.0.0 255.255.255.0 U 0 0 0 tap1a095310-18[root@openstack ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
19: tapc64270af-df: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:07:89:b5 brd ff:ff:ff:ff:ff:ffinet 172.25.2.101/24 brd 172.25.2.255 scope global tapc64270af-dfvalid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:fe07:89b5/64 scope link valid_lft forever preferred_lft forever[root@openstack ~]# exit
exit
查看路由信息
查看IP信息


(4) bash命令进入第3个DHCP服务器查看
[root@openstack ~]# ip netns exec qdhcp-8b5a5b08-5516-4928-b8b6-8e14476cad0f /bin/bash[root@openstack ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.1.254 0.0.0.0 UG 0 0 0 tapd441263b-ea
172.25.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tapd441263b-ea[root@openstack ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
20: tapd441263b-ea: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:ed:ef:77 brd ff:ff:ff:ff:ff:ffinet 172.25.1.101/24 brd 172.25.1.255 scope global tapd441263b-eavalid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:feed:ef77/64 scope link valid_lft forever preferred_lft forever[root@openstack ~]# exit
exit
查看路由信息
查看IP信息


(5) bash命令进入第4个DHCP服务器查看
[root@openstack ~]# ip netns exec qdhcp-0edffd85-3d72-4c82-a73f-01115e32cb4b /bin/bash[root@openstack ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.2.254 0.0.0.0 UG 0 0 0 tapc64270af-df
172.25.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tapc64270af-df[root@openstack ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
19: tapc64270af-df: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN qlen 1000link/ether fa:16:3e:07:89:b5 brd ff:ff:ff:ff:ff:ffinet 172.25.2.101/24 brd 172.25.2.255 scope global tapc64270af-dfvalid_lft forever preferred_lft foreverinet6 fe80::f816:3eff:fe07:89b5/64 scope link valid_lft forever preferred_lft forever[root@openstack ~]# exit
exit
查看路由信息
查看IP信息


相关文章:
云计算:OpenStack 配置云主机实例的存储挂载并实现外网互通
目录 一、实验 1. 环境 2.配置存储挂载 3.云主机实例连接外部网络(SNAT) 4.外部网络连接云主机实例(DNAT) 二、问题 1.云主机 ping 不通外部网络 2.nova list 查看云主机列表报错 3.nova list 与 virsh list --all有何区…...
python/selenium/jenkins整合
1、新建python项目,专门写selenium代码,建议用pytest框架写。 2、把代码上传到代码库中。 3、环境配置: 3.1 在跑jenkins的机器上配置好python环境,需要python --version能在任何地方运行(配置好系统环境变量&#…...
华为路由器ACL操作SSH接口
ACL的定义 访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特…...
Flutter 三点三:Dart Stream
Stream Stream用于接收异步事件Stream 可以接收多个异步事件Stream.listen()方法返回StreamSubscription 可用于取消事件订阅,取消后,不再接收事件 基本使用 Stream.fromFutures([Future.delayed(Duration(seconds: 1),(){return "事件1";})…...
centos 防火墙 设置 LTS
centos 防火墙 设置 LTS https://blog.csdn.net/m0_58805648/article/details/130671008...
SAP缓存 表缓存( Table Buffering)
本文主要介绍SAP中的表缓存在查询数据,更新数据时的工作情况以及对应概念。 SAP表缓存的工作 查询数据 更新数据 删除数据 表缓存的概念 表缓存技术设置属性 不允许缓冲: 允许缓冲,但已关闭: 缓冲已激活: 已…...
Mybatis插件入门
专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...
DOA估计算法——迭代自适应算法(IAA)
1 简介 迭代自适应法 (Iterative Adaptive Approach,IAA)估计算法最早由美国的电气工程师和数学家Robert Schmidt和Roy A. Kuc在1986年的一篇论文"Multiple Emitter Location and Signal Parameter Estimation"中首次提出了这一算法, IAA DOA …...
Python If语句以及代码块的基本介绍
if语句 在编程中if语句是一种根据条件执行不同代码块的控制结构,他根据条件的真假来分支程序的执行路径,所以我们可以通过if语句根据不同情况而执行不同的程序 格式 if [条件(bool值或者计算结果为bool类型的算式)] : a11if a>10:print("a大于10") # --> a大…...
[嵌入式专栏](FOC - SVPWM扇区计算Part1)
文章目录 1 . 概要2 . 扇区计算2.1 扇区Ⅰ计算2.2 扇区Ⅱ计算2.3 扇区Ⅲ计算 3 . 小结 【极客技术传送门】 : https://blog.csdn.net/Engineer_LU/article/details/135149485 1 . 概要 经过扇区判断后,就知道在哪个扇区进行输出了 【Q】但是每个扇区分别输出怎样的结…...
亚马逊美国站ASTM F2613儿童折叠椅和凳子强制性安全标准
ASTM F2613折叠椅和凳子安全标准 美国消费品安全委员会(CPSC)发布的ASTM F2613儿童折叠椅和凳子的强制性安全标准,已于2020年7月6日生效,并被纳入联邦法规《16 CFR 1232儿童折叠椅和凳子安全标准》。 亚马逊要求在美国站上架的儿…...
【机组期末速成】指令系统|机器指令概述|操作数类型与操作类型|寻址方式|指令格式
🎥 个人主页:深鱼~🔥收录专栏:计算机组成原理🌄欢迎 👍点赞✍评论⭐收藏 目录 前言: 一、本章考点总览 二、考点分析 1、以下有关指令系统的说法中错误的是( )。 2…...
java美容管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java Web美容管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…...
Redis哨兵
1.哨兵介绍 1.1.为何需要哨兵? 为了解决master节点宕机问题,选举salve节点为新的master节点。 1.2.哨兵的作用 1.3.服务状态监控 1.4.选举新的master 1.5.如何实现故障转移 2.搭建哨兵集群 2.1.集群结构 这里我们搭建一个三节点形成的Sentinel集群&…...
面试算法78:合并排序链表
题目 输入k个排序的链表,请将它们合并成一个排序的链表。 分析:利用最小堆选取值最小的节点 用k个指针分别指向这k个链表的头节点,每次从这k个节点中选取值最小的节点。然后将指向值最小的节点的指针向后移动一步,再比较k个指…...
鸿鹄电子招投标系统:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台源码与立项流程
在数字化时代,企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台,涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…...
node.js对应npm安装和使用
介绍 node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境,安装node后自带npm。NPM :Node Package ManagerNPM是Node.js标准的软件包管理器 。2010年底,Node.js 的包管理器 npm 诞生,是全球最大的开源库生态系统。 node 20…...
(self-supervised learning)Event Camera Data Pre-training
Publisher: ICCV 2023 MOTIVATION OF READING: 自监督学习、稀疏事件 NILM link: https://arxiv.org/pdf/2301.01928.pdf Code: GitHub - Yan98/Event-Camera-Data-Pre-training 1. Overview Contributions are summarized as follows: 1. A self-supervised framework f…...
关于个人Git学习记录及相关
前言 可以看一下猴子都能懂的git入门,图文并茂不枯燥 猴子都能懂的git入门 学习东西还是建议尽可能的去看官方文档 权威且详细 官方文档 强烈建议看一下GitHub漫游指南及开源指北,可以对开源深入了解一下,打开新世界的大门! …...
【eclipse】eclipse开发springboot项目使用入门
下载eclipse Eclipse downloads - Select a mirror | The Eclipse Foundation 安装eclipse 其他一步一步即可 我们是开发java web选择如下 界面修改 Window->Preferences-> 修改eclipse风格主题 Window->Preferences->General->Appearance 修改字体和大小…...
个人自动化技能库构建指南:从Python脚本到Cron定时任务
1. 项目概述:一个为“摸鱼”场景设计的自动化技能库最近在GitHub上看到一个挺有意思的项目,叫my-copaw-skill。光看这个名字,就透着一股子“打工人”的幽默感——“copaw”这个词,我琢磨着应该是“copilot”(副驾驶/助…...
终极D2DX宽屏补丁:让经典暗黑破坏神2在现代PC上完美重生
终极D2DX宽屏补丁:让经典暗黑破坏神2在现代PC上完美重生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还…...
极简风项目交付倒计时!:紧急修复MJ --v 6.2中隐藏的1.33倍宽高比偏移Bug,避免客户验收驳回(含补救Prompt包)
更多请点击: https://intelliparadigm.com 第一章:极简风项目交付倒计时! 当交付周期压缩至 72 小时,极简风不再是一种美学选择,而是工程效率的刚性约束。我们摒弃冗余文档、跳过非核心评审环节,聚焦于可…...
Java 大厂面试 200 题完整版含答案解析
前言本文整理了近两年从阿里、腾讯、字节、美团、京东、拼多多等大厂面试中高频出现的 200 道 Java 面试题,覆盖 Java 基础、集合、并发、JVM、Spring、MySQL、Redis、消息队列、分布式、场景设计 等核心模块,每题都附有简明扼要的答案解析,助…...
LrcHelper:3分钟掌握网易云音乐双语歌词下载,告别歌词烦恼
LrcHelper:3分钟掌握网易云音乐双语歌词下载,告别歌词烦恼 【免费下载链接】LrcHelper 从网易云音乐下载带翻译的歌词 Walkman 适配 项目地址: https://gitcode.com/gh_mirrors/lr/LrcHelper 你是否曾为找不到心爱歌曲的歌词而烦恼?或…...
NVIDIA Profile Inspector完整指南:200+隐藏设置解锁显卡极致性能
NVIDIA Profile Inspector完整指南:200隐藏设置解锁显卡极致性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏画面撕裂、输入延迟过高而烦恼吗?想要彻底掌控NVIDIA…...
Biomni:生物医学图像分析从入门到精通,AI与传统CV融合实战
1. 项目概述:当AI学会“看”懂生物医学图像如果你在生物医学研究、药物发现或者临床诊断领域工作,大概率会和我一样,对海量的生物医学图像数据感到既兴奋又头疼。兴奋的是,这些图像——无论是显微镜下的细胞切片、组织病理学玻片&…...
Claude API企业准入最后窗口期:2024Q3起强制启用OAuth 2.1+硬件级密钥绑定,现在不升级将无法续签
更多请点击: https://intelliparadigm.com 第一章:Claude API企业准入政策的演进与合规紧迫性 随着Anthropic对Claude模型商用边界的持续收束,企业级API接入正从“技术可用性”转向“治理可验证性”。2024年Q2起,所有新注册企业账…...
开源机械爪OpenClaw:从设计到力控抓取的完整实现指南
1. 项目概述:从“OpenClaw”看开源机械爪的无限可能最近在逛GitHub的时候,发现了一个挺有意思的项目,叫“MeyerZhou/openclaw”。光看名字,你大概能猜到这是个关于机械爪的开源项目。没错,这是一个旨在提供低成本、模块…...
用51单片机和HC-SR04超声波模块DIY一个倒车雷达(附完整代码和立创EDA原理图)
51单片机与HC-SR04超声波模块实战:打造高精度倒车雷达系统 在汽车电子和智能硬件领域,倒车雷达作为基础安全装置,其DIY实现不仅能帮助理解超声波测距原理,更是掌握嵌入式系统开发的绝佳实践。本文将手把手教你使用经典的STC89C52单…...
