首页 文章 精选 留言 我的

精选列表

搜索[分代式],共10000篇文章
优秀的个人博客,低调大师

理解 virbr0 - 每天5分钟玩转 OpenStack(11)

virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网卡提供 NAT 访问外网的功能。 virbr0 默认分配了一个IP 192.168.122.1,并为连接其上的其他虚拟网卡提供 DHCP 服务。 下面我们演示如何使用 virbr0。 在 virt-manager 打开 VM1 的配置界面,网卡 Source device 选择 “default”,将 VM1 的网卡挂在 virbr0 上。 启动 VM1,brctl show 可以查看到 vnet0 已经挂在了 virbr0 上。 # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 virbr0 8000.fe540075dd1a yes vnet0 用 virsh 命令确认 vnet 就是 VM1 的虚拟网卡。 # virsh domiflist VM1 Interface Type Source Model MAC ------------------------------------------------------- vnet0 network default rtl8139 52:54:00:75:dd:1a virbr0 使用 dnsmasq 提供 DHCP 服务,可以在宿主机中查看该进程信息 # ps -elf|grep dnsmasq 5 S libvirt+ 2422 1 0 80 0 - 7054 poll_s 11:26 ? 00:00:00 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf 在 /var/lib/libvirt/dnsmasq/ 目录下有一个 default.leases 文件,当 VM1 成功获得 DHCP 的 IP 后,可以在该文件中查看到相应的信息 # cat /var/lib/libvirt/dnsmasq/default.leases 1441525677 52:54:00:75:dd:1a 192.168.122.6 ubuntu * 上面显示 192.168.122.6 已经分配给 MAC 地址为 52:54:00:75:dd:1a 的网卡,这正是 vnet0 的 MAC。之后就可以使用该 IP 访问 VM1 了。 # ssh 192.168.122.6 root@192.168.122.6's password: Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-30-generic x86_64) Last login: Sun Sep 6 01:30:23 2015 root@VM1:~# ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:75:dd:1a inet addr:192.168.122.6 Bcast:192.168.122.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe75:dd1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:61 errors:0 dropped:0 overruns:0 frame:0 TX packets:66 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7453 (7.4 KB) TX bytes:8649 (8.6 KB) Ping一下外网。 root@VM1:~# ping www.baidu.com PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data. 64 bytes from 180.97.33.107: icmp_seq=1 ttl=52 time=36.9 ms 64 bytes from 180.97.33.107: icmp_seq=2 ttl=52 time=119 ms 64 bytes from 180.97.33.107: icmp_seq=3 ttl=52 time=88.5 ms 64 bytes from 180.97.33.107: icmp_seq=4 ttl=52 time=38.0 ms 64 bytes from 180.97.33.107: icmp_seq=5 ttl=52 time=122 ms 没有问题,可以访问外网,说明 NAT 起作用了。 需要说明的是,使用 NAT 的虚机 VM1 可以访问外网,但外网无法直接访问 VM1。 因为 VM1 发出的网络包源地址并不是 192.168.122.6,而是被 NAT 替换为宿主机的 IP 地址了。 这个与使用 br0 不一样,在 br0 的情况下,VM1 通过自己的 IP 直接与外网通信,不会经过 NAT 地址转换。 下节我们讨论 vlan 在 linux bridge 中的实现

优秀的个人博客,低调大师

动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)

本节将演示如何在实验环境中实现下图所示的虚拟网络 配置 Linux Bridge br0 编辑 /etc/network/interfaces,配置 br0。 下面用 vimdiff 展示了对 /etc/network/interfaces 的修改 有两点需要注意: 1. 之前宿主机的 IP 是通过 dhcp 配置在 eth0 上的;创建 Linux Bridge 之后,IP 就必须放到 br0 上了 2. 在 br0 的配置信息中请注意最后一行 “bridge_ports eth0”,其作用就是将 eth0 挂到 br0 上 重启宿主机,查看 IP 配置,可以看到 IP 已经放到 br0 上了 # ifconfig br0 Link encap:Ethernet HWaddr 00:0c:29:8d:ec:be inet addr:192.168.111.107 Bcast:192.168.111.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe8d:ecbe/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:22573 errors:0 dropped:0 overruns:0 frame:0 TX packets:2757 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4927580 (4.9 MB) TX bytes:368895 (368.8 KB) eth0 Link encap:Ethernet HWaddr 00:0c:29:8d:ec:be inet6 addr: fe80::20c:29ff:fe8d:ecbe/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24388 errors:0 dropped:0 overruns:0 frame:0 TX packets:2816 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5590438 (5.5 MB) TX bytes:411558 (411.5 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:146 errors:0 dropped:0 overruns:0 frame:0 TX packets:146 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:10521 (10.5 KB) TX bytes:10521 (10.5 KB) virbr0 Link encap:Ethernet HWaddr 72:db:fb:f2:19:91 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 用 brctl show 查看当前 Linux Bridge 的配置。 eth0 已经挂到 br0 上了 # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 virbr0 8000.000000000000 yes 除了 br0,大家应该注意到还有一个 virbr0 的 Bridge,而且 virbr0 上已经配置了 IP 地址 192.168.122.1。 virbr0 的作用我们会在后面介绍。 在宿主机中 CloudMan 已经提前创建好了虚机 VM1 和 VM2,现在都处于关机状态 # virsh list --all Id Name State ---------------------------------------------------- - VM1 shut off - VM2 shut off 配置 VM1 下面我们在 virt-manager 中查看一下 VM1 的网卡配置(为了使大家能够熟练使用命令行工具 virsh 和图形工具 virt-manager,CloudMan 在演示的时候会同时用到它们,两个工具都很重要) 可以看到虚拟网卡的 source device 我们选择的是 br0 下面我们启动 VM1,看会发生什么 # virsh start VM1 Domain VM1 started # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 vnet0 virbr0 8000.000000000000 yes brctl show 告诉我们 br0 下面添加了一个 vnet0 设备,通过 virsh 确认这就是VM1的虚拟网卡。 # virsh domiflist VM1 Interface Type Source Model MAC ------------------------------------------------------- vnet0 bridge br0 rtl8139 52:54:00:75:dd:1a VM1 的 IP 是 DHCP 获得的(设置静态 IP 当然也可以),通过 virt-manager 控制台登录 VM1,查看 IP。 # ifconfig eth0 Link encap:Ethernet HWaddr 52:54:00:75:dd:1a inet addr:192.168.111.106 Bcast:192.168.111.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:fe75:dd1a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:400 errors:0 dropped:0 overruns:0 frame:0 TX packets:101 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:41950 (41.9 KB) TX bytes:12583 (12.5 KB) VM1 通过 DHCP 拿到的 IP 是 192.168.111.106,与宿主机(IP为192.168.111.107)是同一个网段。Ping 一下外网 root@VM1:~# ping www.baidu.com PING www.a.shifen.com (180.97.33.108) 56(84) bytes of data. 64 bytes from 180.97.33.108: icmp_seq=1 ttl=53 time=34.9 ms 64 bytes from 180.97.33.108: icmp_seq=2 ttl=53 time=36.2 ms 64 bytes from 180.97.33.108: icmp_seq=3 ttl=53 time=38.8 ms 没问题,可以访问。 另外,在 VM1 中虚拟网卡是 eth0,并不是 vnet0。 vent0 是该虚拟网卡在宿主机中对应的设备名称,其类型是 TAP 设备,这里需要注意一下。 配置 VM2 跟 VM1 一样,VM2 的虚拟网卡也挂在 br0上,启动 VM1,查看网卡信息 # virsh start VM2 Domain VM2 started # brctl show bridge name bridge id STP enabled interfaces br0 8000.000c298decbe no eth0 vnet0 vnet1 virbr0 8000.000000000000 yes br0 下面多了 vnet1,通过 virsh 确认这就是 VM2 的虚拟网卡。 # virsh domiflist VM2 Interface Type Source Model MAC ------------------------------------------------------- vnet0 bridge br0 rtl8139 52:54:00:cf:33:a1 VM2 通过 DHCP 拿到的 IP 是 192.168.111.108,登录 VM2,验证网络的连通性 Ping VM1 root@VM2:~# ping VM1 PING VM1 (192.168.111.106) 56(84) bytes of data. 64 bytes from 192.168.111.106: icmp_seq=1 ttl=64 time=4.54 ms 64 bytes from 192.168.111.106: icmp_seq=2 ttl=64 time=1.63 ms 64 bytes from 192.168.111.106: icmp_seq=3 ttl=64 time=2.16 ms Ping 宿主机 root@VM2:~# ping 192.168.111.107 PING 192.168.111.107 (192.168.111.107) 56(84) bytes of data. 64 bytes from 192.168.111.107: icmp_seq=1 ttl=64 time=1.02 ms 64 bytes from 192.168.111.107: icmp_seq=2 ttl=64 time=0.052 ms 64 bytes from 192.168.111.107: icmp_seq=3 ttl=64 time=0.064 ms Ping 外网 root@VM2:~# ping www.baidu.com PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data. 64 bytes from 180.97.33.107: icmp_seq=1 ttl=53 time=53.9 ms 64 bytes from 180.97.33.107: icmp_seq=2 ttl=53 time=45.0 ms 64 bytes from 180.97.33.107: icmp_seq=3 ttl=53 time=44.2 ms 可见,通过 br0 这个 Linux Bridge,我们实现了 VM1、VM2、宿主机和外网这四者之间的数据通信。 下节我们讨论 virbr0

优秀的个人博客,低调大师

准备 KVM 实验环境 - 每天5分钟玩转 OpenStack(3)

KVM 是 OpenStack 使用最广泛的 Hypervisor,本节介绍如何搭建 KVM 实验环境 安装 KVM 上一节说了,KVM 是 2 型虚拟化,是运行在操作系统之上的,所以我们先要装一个 Linux。Ubuntu、Redhat、CentOS 都可以,这里我们以 Ubuntu14.04 为例。 基本的 Ubuntu 操作系统装好之后,安装 KVM 需要的包 $ sudo apt-get install qemu-kvm qemu-system libvirt-bin virt-manager bridge-utils vlan 通过这些安装包我们顺便复习一下上一节介绍的 KVM 的相关知识。 qemu-kvm 和 qemu-system 是 KVM 和 QEMU 的核心包,提供 CPU、内存和 IO 虚拟化功能 libvirt-bin 就是 libvirt,用于管理 KVM 等 Hypervisor virt-manager 是 KVM 图形化管理工具 bridge-utils 和 vlan,主要是网络虚拟化需要,KVM 网络虚拟化的实现是基于 linux-bridge 和 VLAN,后面我们会讨论。 Ubuntu 默认不安装图形界面,手工安装一下 sudo apt-get install xinit sudo apt-get install gdm sudo apt-get install kubuntu-desktop apt 默认会到官网上去下载安装包,速度很慢,我们可以使用国内的镜像站点。 配置/etc/apt/sources.list deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse 然后执行下面命令更新安装包 index # apt update Redhat 和 CentOS 安装相对简单,安装过程中选择虚拟化和图形组件就可以了。 小窍门:Ubuntu 默认是不允许 root 通过 ssh 直接登录的,可以修改 /etc/ssh/sshd_config,设置 PermitRootLogin yes 然后重启 ssh 服务即可 # service ssh restart ssh stop/waiting ssh start/running, process 27639 在虚拟机上做实验 作为 2型虚拟化的 KVM,是支持虚拟化嵌套,这使得我们可以在虚拟机中实验 KVM。 比如我在 VMWare Workstation 中安装了一个 Ubuntu14.04 的虚拟机,为了能让 KVM 能创建 嵌套的虚机,要把 CPU 的虚拟化功能打开。如下图在 VMWare 中设置以下 CPU 的模式 Ubuntu 启动后,用以下命令确认 CPU 支持虚拟化 # egrep -o '(vmx|svm)' /proc/cpuinfo # vmx 确认 Libvirtd 服务已经启动 # service libvirt-bin status libvirt-bin start/running, process 1478 KVM 准备就绪,下一节我们将创建虚拟机

优秀的个人博客,低调大师

VuReact 1.6.2 发布,下一代 Vue 3 转 React 编译工具

前端开源编译工具 VuReact 发布 1.6.2 版本,作为专注于 Vue3 代码无感转换为 React 代码的核心工具,本次版本聚焦修复关键编译问题、优化版本兼容性,进一步提升 Vue3 转 React 的编译稳定性与开发体验。 VuReact 致力于跨框架开发与降低 Vue3 技术栈迁移至 React 栈的成本,通过自动化编译能力,减少手动重构代码,即可实现 Vue3 语法到 React 的精准转换,是跨技术栈迁移、项目改造的高效工具。 ## 更新内容 - 修复 <template> 标签 :key 属性多子元素场景处理异常: - 当 <template> 包含多个子元素时,编译器无法定位 key 属性转移目标,本次更新新增明确警告提示,规范 <template> 单子元素使用规则,保障 key 属性正确编译 - 修复 <template> 标签 :key 属性错误转移问题: - 针对 <template> 首个子元素为 <template>、<slot> 等不支持 key 的特殊节点场景,编译器自动跳过 key 转移操作,避免属性错误应用 - 升级运行时适配包至最新版本:同步更新运行时适配依赖,统一工具版本,确保转换环境一致性,兼容最新 React 运行时特性 ## 相关链接 - GitHub: https://github.com/vureact-js/core - 官方网站:https://www.vureact.top - Npm:https://www.npmjs.com/package/@vureact/compiler-core ### 总结 本次 VuReact 1.6.2 为问题修复+版本兼容迭代,核心解决 Vue3 模板编译中 key 属性的两大异常问题,同时同步适配包版本,大幅降低转换报错率,让 Vue3 转 React 更稳定。 如果你在使用 VuReact 的过程中发现任何问题,欢迎: - 🌟 在 GitHub 点亮 Star 支持项目 - 📝 前往 GitHub Issue 反馈你的问题 让 VuReact 更贴合真实项目的迁移需求,一起打造更稳定、更全面的 Vue 3 → React 编译工具。

优秀的个人博客,低调大师

华为开出 300 万悬赏,寻找 AI 时代新一代存储方案

华为第六届「奥林帕斯」全球征集活动已正式启动,面向全球发布悬赏,聚焦解决 AI 时代的存储难题。 本届活动延续往届设置,总奖金池为 300 万元人民币,面向高校科研机构、企业研发团队以及独立开发者征集创新方案,方向包括但不限于数据存储架构优化、高可靠性存储系统、面向大模型训练与推理的数据访问效率提升等前沿课题。 据介绍,华为希望通过这一长期机制,连接产业需求与科研创新,为 AI 时代海量数据的高效存储与调用寻找可落地的技术路径。 入选方案除有机会分享奖金外,还将获得与华为相关业务团队深入交流、在真实业务场景中试点验证的机会,有望加速从概念验证走向工程化与规模化应用。

优秀的个人博客,低调大师

Seedance 1.5 pro 发布,新一代音视频生成模型

字节跳动发布了全新的音视频生成模型Seedance 1.5 pro,原生支持音视频联合生成,在视听协同、视觉张力和叙事协调性等方面实现突破: 音画高精同步:采用创新的原生音视频联合生成架构,支持环境音、动作音、合成音效、乐器、背景音乐、人声等多种元素,实现毫秒级音画同步输出。 多人多语言对白:支持独白与多人对话,口型毫秒级精准对齐,并覆盖中文、方言(四川话、粤语、陕西话、上海话等)、英文及小语种,全方位还原真实自然的对话质感,实现全球化创作。 影视级叙事张力:运动幅度自然、节奏感强,能够精准捕捉运动细节;画面感知力强,人物情绪与表情呈现细腻,大幅提升生动性,实现影视级创作质感。 目前,Seedance 1.5 pro已在豆包APP(灰度测试)、即梦、火山引擎体验中心上线,用户可以试用体验。关于模型的更多技术细节,详见项目主页:https://seed.bytedance.com/zh/seedance1_5_pro

优秀的个人博客,低调大师

新一代开源 AI 图像生成/编辑模型 FLUX.2 发布

近日,德国 AI 公司 Black Forest Labs(BFL)正式发布 “FLUX.2”——他们迄今为止最强大的文本-图像生成/编辑模型,目标不仅是“炫技展示”,而是真正服务于专业创作与产业级视觉工作流。 据介绍,FLUX.2支持多参考图生成(最多10张),提升角色、风格一致性;优化光照、纹理细节,适用于产品摄影、UI设计等场景。此外新增结构化JSON提示词控制,支持十六进制颜色代码精准配色,强化复杂排版、多语言(含中文)文本渲染能力。 FLUX.2版本划分: FLUX.2 [pro]:闭源商用版本,图像质量对标顶级闭源模型,生成速度更快、成本更低。 FLUX.2 [flex]:允许调整步数、引导规模等参数,平衡质量与速度,擅长文本与细节渲染。 FLUX.2 [dev]:32B参数开源版本(需授权商用),集成文生图、多图编辑功能,支持本地部署(需RTX 4090及以上显卡),Hugging Face已开源权重。 FLUX.2 [klein](待发布):Apache 2.0协议的开源轻量版,通过蒸馏保留核心能力。 FLUX.2 亮点如下: 专业级画质 + 高分辨率:FLUX.2 支持生成和编辑高达 4 百万像素(4 MP)图像,画面细节、材质、光照、空间感都接近摄影级真实感。 多图参考 (Multi-reference) + 风格/角色/产品一致性:用户可以输入多张参考图像(最多 6–10 张),FLUX.2 能保持风格、角色、产品外观的一致性,这对广告图、系列海报、产品展示等应用尤为关键。 优异的文本与排版渲染能力:相比此前很多生成模型容易“字母混乱”或“假文本”,FLUX.2 能生成清晰、可读的文字,适合海报、UI mock-up、信息图 (infographics)、跨语言内容等场景。 物理世界感 + 语义理解 + 布局/构图控制:模型对于光照、阴影、反射、透视、材质表现有更好的理解,也能按照结构化提示 (structured prompts) 生成复杂构图 —— 几乎可以 “把脑中的设计图变成照片”。 开放-核心 (open-core) 策略 + 多种版本选择:FLUX.2 提供从开源/开权重 (open-weight) 的 “Dev” 版本,到针对商业用户优化的 “Pro”/“Flex” 版本。对于研究者、设计师、创意团队、公司都具有灵活选择空间。 实测显示,与Google Nano Banana Pro相比,FLUX.2在CCD相机风格还原、结构化场景生成上表现更优,但世界知识理解(如动漫角色)仍存在差距。开源版本FLUX.2 [dev]生成单图成本约0.03美元,在多图编辑任务中优于同类开源模型。 FLUX.2开源地址:https://github.com/black-forest-labs/flux2

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册