存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)
目录
- 目的
- 实验环境
- 实验步骤
- 参考文档
- 1. 主机安装存储多路径
- 2. v2存储创建Lun,映射给主机;主机分区格式化,写数据
- 3. 将v2存储映射该成映射到v3存储上(v3存储和v2之间链路搭建,测通,远端设备)(SmartVirtualization前置)
- 4. v3存储创建edevlun(SmartVirtualization特性)
- 5. 主机连接v3,v3创建主机、主机组、映射视图
- 6. 主机切换写入路径
- 7. v3存储做Pair对(Smart Migration)
- 8. 迁移v2存储上的预留信息
- 9. v3存储 分裂 Pair对,v2存储删除与主机的映射关系
- 10. 主机测试
目的
实现数据存储从旧存储(Oceanstor V2)迁移至新存储(OceanStor V3)的数据迁移实验。
该实验是在线数据迁移
。
注意1:该实验依托
华为存储Smart特性
实现,其他厂商存储具有不同的特性,请仔细阅读产品文档
注意2:该实验以提前确定过迁移前后系统的兼容性情况,遇到真正的异构厂商存储迁移or未知的厂商存储迁移,请阅读兼容性手册
或询问原厂支持
。
注意3:数据无小事
,涉及到生产请反复验证、备份保证业务连续性和健壮性。
实验环境
主机 | 网段/IP | 作用 |
---|---|---|
Centos8 | 172.117.0.0/16 | 运维管理网段,远程连接(可以不配) |
Centos8 | 172.118.0.0/16 | 存储业务网段,对接存储业务口(仅在ens22上配置该ip即可) |
OceanStorV2 | 172.1.0.41:8088 | 旧存储管理地址,webPortal |
OceanStorV2 | 172.3.0.41-44 | 旧存储业务地址,通过172.118.0.0路由连接 |
OceanStorV3 | 172.1.0.61:8088 | 新存储管理地址,webPortal |
OceanStorV3 | 172.3.0.61-64 | 新存储业务地址,通过172.118.0.0路由连接 |
vSphere | 172.1.0.130 | vCenter webui地址,用于启停快照Centos |
实验步骤
参考文档
可以参考官方的产品文档,我参考的是
OceanStor 5x10系列 产品文档
本次在线接管
的步骤在该文档的以下部分:
》
1. 主机安装存储多路径
本次实验用华为厂商的UltraPath存储多路径
具体的存储多路径实验内容可以看我以前的一片笔记:存储实验:FC-SAN实验与光交配置(GUI&CLI)
- 上传多路径软件(可以到华为官网下载,本次使用的是UltraPath31.3.0
- 解压UltraPath
unzip OceanStor_UltraPath_31.3.0_CentOS.zip
- 进入目录执行安装脚本(选择系统位于本地安装)
cd CentOS/
sh install.sh
#选择系统安装路径
1
#安装完毕选择重启
Y
2. v2存储创建Lun,映射给主机;主机分区格式化,写数据
略,详细可以看我上一篇笔记:存储实验:Smart Virtualization & Smart Migration 特性实现离线数据迁移
-
存储映射视图
-
主机连接LUN
#连接存储
[root@localhost iscsi]# iscsiadm -m discovery -t st -p 172.3.0.41
172.3.0.41:3260,8199 iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41
[root@localhost iscsi]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41, portal: 172.3.0.41,3260]
Login to [iface: default, target: iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41, portal: 172.3.0.41,3260] successful.# 扫存储LUN
[root@localhost iscsi]# hot_add
Begin to delete LUNs whose mappings do not exist
Begin to delete LUNs whose mappings are changed.
begin scan host0
begin scan host1
begin scan host10
begin scan host11
begin scan host12
....# 查看硬盘
[root@localhost iscsi]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 18.4G 0 part├─cl-root 253:0 0 16.4G 0 lvm /└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
up-1 252:1 0 1G 0 disk# 测试
[root@localhost iscsi]# touch /mysqldata/tes{1..5{
[root@localhost iscsi]# touch /mysqldata/tes{1..5}
[root@localhost iscsi]# ls /mysqldata/
tes1 tes{1..5{ tes2 tes3 tes4 tes5
- 主机通过多路径视图查看LUN
# 查看LUN信息
[root@localhost iscsi]# upadmin
UltraPath CLI #0 >show vlun type=all
--------------------------------------------------------------------------------------------------------------------------------------------------------------Vlun ID Disk Name Lun WWN Status Capacity Ctrl(Own/Work) Array Name Dev Lun ID No. of Paths(Available/Total)0 sdb 0816-v2-test 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B wuhan 43 1/1
--------------------------------------------------------------------------------------------------------------------------------------------------------------# 查看版本
UltraPath CLI #1 >show version
Software Version : 31.03.031
Driver Version : 31.03.031# 查看v2存储的SN号,用于下一步创建eDevLUN时使用
UltraPath CLI #2 >show array
-------------------------------------------------------------------------Array ID Array Name Array SN Vendor Name Product Name0 wuhan 210235G7KW10F5000012 HUAWEI S2600T
-------------------------------------------------------------------------
3. 将v2存储映射该成映射到v3存储上(v3存储和v2之间链路搭建,测通,远端设备)(SmartVirtualization前置)
远端设备配置略
- v2存储新建映射视图,将上一步创建的LUN再次映射给v3存储的存储主机组
4. v3存储创建edevlun(SmartVirtualization特性)
- v3存储创建eDevLUN
在这里选用基本伪装
即可,不同的伪装用于什么类型的异构也可以在产品文档找到。
不同伪装的使用场景:
在DeviceManager界面创建eDevLUN时,可以设置“接管类型”为“离线”和“在线”。
- 当设置为“离线”接管时,自动匹配的伪装属性为不伪装。
- 当设置为“在线”接管时,根据异构存储的类型是华为异构存储或第三方异构存储,自动匹配为基本伪装或第三方伪装接管。当用户需要采用扩展伪装接管时,只能通过CLI命令create lun_takeover general进行接管。
在线接管第三方厂商异构存储系统时,eDevLUN的伪装属性为“第三方”,仅支持对应用服务器操作系统自带多路径的环境进行接管操作,并且环境中不能同时存在华为UltraPath、赛门铁克SF DMP和Veritas Storage Foundation等能够接管华为存储系统的多路径软件。同时,只支持部分应用服务器操作系统和集群软件。
- 观察eDevLun和远端Lun的关系
- eDevLun的wwn:
- 远端Lun的wwn(就是v2存储的Lunwwn):
- eDevLun的wwn:
5. 主机连接v3,v3创建主机、主机组、映射视图
略
- 主机连接
[root@localhost iscsi]# iscsiadm -m discovery -t st -p 172.3.0.61
172.3.0.61:3260,8196 iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61
[root@localhost iscsi]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61, portal: 172.3.0.61,3260]
Login to [iface: default, target: iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61, portal: 172.3.0.61,3260] successful.
-
v3存储映射视图
-
主机测试
# 扫盘
hot_add# 查看磁盘
[root@localhost iscsi]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 18.4G 0 part├─cl-root 253:0 0 16.4G 0 lvm /└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
└─sdb1 8:17 0 1023M 0 part /mysqldata
up-1 252:1 0 1G 0 disk# 进入UltraPath查看,出现两个LUN,分别是不同的存储提供的不同的LUN
[root@localhost iscsi]# upadminUltraPath CLI #0 >show vlun type=all
--------------------------------------------------------------------------------------------------------------------------------------------------------------Vlun ID Disk Name Lun WWN Status Capacity Ctrl(Own/Work) Array Name Dev Lun ID No. of Paths(Available/Total)0 sdb 0816-v2-test 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B wuhan 43 1/10 sdb eDevLUN0816 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B v3 111 1/1
--------------------------------------------------------------------------------------------------------------------------------------------------------------
UltraPath CLI #1 >show array
-------------------------------------------------------------------------Array ID Array Name Array SN Vendor Name Product Name0 v3 2102350BVD10H1000043 HUAWEI S2600T1 wuhan 210235G7KW10F5000012 HUAWEI S2600T
-------------------------------------------------------------------------
UltraPath CLI #5 >show iostat vlun_id=0 type=all
=====================================================================================IO Performance Information
=====================================================================================IOPS KB/S response time(ms)Total |Read |Write Total |Read |Write Total |Read |Write
VLUN 0 0 |0 |0 0 |0 |0 0 |0 |0
Lun Array 2102350BVD10H1000043
Controller 0A
Path 0 :0 |0 |0 0 |0 |0 0 |0 |0
Lun Array 210235G7KW10F5000012
Controller 0A
Path 1 :0 |0 |0 0 |0 |0 0 |0 |0
6. 主机切换写入路径
此时其实我们没有做SmartMigration,多路径软件会根据外部和内部LUN自动判定这是一个Migration的vlun
# 主机查看migration vlun状态,可以看到vlunid=0的lun上的两个lun wwn都是相同的,都是v2LUN的wwn。
# v3是伪装出的lun
UltraPath CLI #6 >show vlun type=migration
--------------------------------------------------------------------------------------------------------------------------------------------------------------Vlun ID Disk Name Lun WWN Status Capacity Ctrl(Own/Work) Array Name Dev Lun ID No. of Paths(Available/Total)0 sdb eDevLUN0816 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B v3 111 1/10 sdb 0816-v2-test 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B wuhan 43 1/1
--------------------------------------------------------------------------------------------------------------------------------------------------------------UltraPath CLI #7 >show vlun id=0 type=migration
=======================================================VLUN#0 Information # 表示虚拟LUN(VLUN)编号为0的相关信息
=======================================================
Disk : sdb # 指定与此VLUN关联的物理磁盘,设备名为 sdb
Manual IO Suspension : Off # 手动I/O挂起状态,当前处于关闭状态
Aggregation Type : Migration # 聚合类型为迁移,表示涉及数据从一个设备迁移到另一个设备
Aggregation Specific Attribution # 描述接下来的聚合相关的具体属性IO Direction : Source # I/O方向为源设备,表示数据从此设备读取或迁移出去Rollback : Disable # 回滚功能被禁用,意味着无法撤销迁移
Aggregation Member#0 Infomation # 表示第一个聚合成员(目标设备)的信息Name : eDevLUN0816 # 目标设备的名称为 eDevLUN0816Status : Normal # 设备状态正常Capacity : 1.00GB # 设备容量为1.00GBAggregation Specific Attribution : Target Device # 设备被标记为迁移的目标设备LUN WWN : 69c37f4100814c0e6d2ddfed0000002b # 逻辑单元号 (LUN) 的全球唯一标识符Array Name : v3 # 设备所在存储阵列的名称为 v3Array SN : 2102350BVD10H1000043 # 存储阵列的序列号Driver : Vendor-specific(DEFAULT) # 使用供应商指定的默认驱动程序Product Name : S2600T # 存储产品名称为 S2600TVendor Name : HUAWEI # 供应商名称为华为Owning Controller : 0B # 设备的所属控制器为 0BWorking Controller: 0B # 设备当前工作的控制器为 0BNum of Paths : 1 # 设备到控制器的路径数为 1Controller 0A # 下方列出控制器 0A 的相关信息Path 0 [34:0:0:1] (up-0) : Normal # 路径0的信息,状态为正常
Aggregation Member#1 Infomation # 表示第二个聚合成员(源设备)的信息Name : 0816-v2-test # 源设备的名称为 0816-v2-testStatus : Normal # 设备状态正常Capacity : 1.00GB # 设备容量为1.00GBAggregation Specific Attribution : Source Device # 设备被标记为迁移的源设备LUN WWN : 69c37f4100814c0e6d2ddfed0000002b # 逻辑单元号 (LUN) 的全球唯一标识符Array Name : wuhan # 设备所在存储阵列的名称为 wuhanArray SN : 210235G7KW10F5000012 # 存储阵列的序列号Driver : Vendor-specific(DEFAULT) # 使用供应商指定的默认驱动程序Product Name : S2600T # 存储产品名称为 S2600TVendor Name : HUAWEI # 供应商名称为华为Owning Controller : 0B # 设备的所属控制器为 0BWorking Controller: 0B # 设备当前工作的控制器为 0BNum of Paths : 1 # 设备到控制器的路径数为 1Controller 0A # 下方列出控制器 0A 的相关信息Path 1 [33:0:0:1] (up-1) : Normal # 路径1的信息,状态为正常
------------------------------------------------------- # 表示信息展示结束# 切换存储路径
UltraPath CLI #8 >start migration vlun_id=0 direction=target rollback=enableUltraPath CLI #9 >show path
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Path ID Initiator Port Array Name Controller Target Port Path State Check State Port Type Port ID0 iqn.1994-05.com.redhat:0816test::3137:322E:3131:382E:342E:3130:3000:0::34 v3 0A iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61::0 Normal -- iSCSI CTE0.A.H0
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Path ID Initiator Port Array Name Controller Target Port Path State Check State Port Type Port ID1 iqn.1994-05.com.redhat:0816test::3137:322E:3131:382E:342E:3130:3000:0::33 wuhan 0A iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41::0 Normal -- iSCSI ENG0.A1.H0
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7. v3存储做Pair对(Smart Migration)
8. 迁移v2存储上的预留信息
在上一步中,实际执行到最后会报错:
原因是,还有部分v2存储上的预留信息没有被迁移到v3存储上。
需要登录v3存储(新存储)的命令行进行解决:
- 登录到v3存储后台:
- 查看v3存储上,需要迁移的Lun的编号
#show lun_takeover general命令用于查询存储系统中存在的接管LUN的信息。
xxx:/>show lun_takeover generalID Name Pool ID Capacity Health Status Running Status Type WWN Is Add To Lun Group DIF Switch Takeover LUN Type Takeover LUN WWN--- -------------------- ------- -------- ------------- -------------- ----- -------------------------------- ------------------- ---------- ----------------- --------------------------------16 xxx 0 5.000GB Normal Online Thick 618ded7100c077ff07c9f38400000010 Yes No BASIC 69c37f4100814c0e07c931150000000a39 xxx 2 10.000GB Normal Online Thick 618ded7100c077ff1a0c731d00000027 Yes No BASIC 69c37f4100814c0e18c2fc1e0000001440 xxx 2 5.000GB Normal Online Thick 618ded7100c077ff1a0c739d00000028 Yes No BASIC 69c37f4100814c0e18c3072a0000001541 xxx 2 10.000GB Normal Online Thick 618ded7100c077ff1a0c73d500000029 Yes No BASIC 69c37f4100814c0e18c2fbd200000013107 xxx 0 5.000GB Normal Online Thick 618ded7100c077ff6c6495280000006b Yes No BASIC 69c37f4100814c0e6c60a1970000002b111 eDevLUN0816 0 1.000GB Normal Online Thick 618ded7100c077ff6d34652d0000006f Yes No BASIC 69c37f4100814c0e6d2ddfed0000002bxxx:/>change protocol service operation_code=relocate operation_object_type=lun_reservation operation_object_id=111
Command executed successfully.developer:/>change lun_takeover finish_switch_path lun_id=111
至此,重新执行步骤7
9. v3存储 分裂 Pair对,v2存储删除与主机的映射关系
v2存储删除与主机的映射关系略
主机删除与v2存储的iscsi连接:
[root@localhost ~]# iscsiadm -m session
tcp: [1] 172.3.0.41:3260,8199 iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41 (non-flash)
tcp: [2] 172.3.0.61:3260,8196 iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61 (non-flash)[root@localhost ~]# iscsiadm -m node -u -T iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41
Logging out of session [sid: 3, target: iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41, portal: 172.3.0.41,3260]
Logout of [sid: 3, target: iqn.2006-08.com.huawei:oceanstor:21009c37f4814c0e:icarus:22006:172.3.0.41, portal: 172.3.0.41,3260] successful.[root@localhost ~]# iscsiadm -m session
tcp: [4] 172.3.0.61:3260,8196 iqn.2006-08.com.huawei:oceanstor:210018ded7c077ff:iqn2006:22003:172.3.0.61 (non-flash)[root@localhost ~]# upadminUltraPath CLI #0 >show array
-------------------------------------------------------------------------Array ID Array Name Array SN Vendor Name Product Name0 v3 2102350BVD10H1000043 HUAWEI S2600T
-------------------------------------------------------------------------UltraPath CLI #1 >show vlun type=all
-------------------------------------------------------------------------------------------------------------------------------------------------------------Vlun ID Disk Name Lun WWN Status Capacity Ctrl(Own/Work) Array Name Dev Lun ID No. of Paths(Available/Total)0 sdb eDevLUN0816 69c37f4100814c0e6d2ddfed0000002b Normal 1.00GB 0B/0B v3 111 1/1
-------------------------------------------------------------------------------------------------------------------------------------------------------------
10. 主机测试
[root@localhost ~]# touch /mysqldata/{1..5}.txt
[root@localhost ~]# ls /mysqldata/
1.txt 2.txt 3.txt 4.txt 5.txt tes1 tes{1..5{ tes2 tes3 tes4 tes5
相关文章:

存储实验:华为异构存储在线接管与在线数据迁移(Smart Virtualization Smart Migration 特性)
目录 目的实验环境实验步骤参考文档1. 主机安装存储多路径2. v2存储创建Lun,映射给主机;主机分区格式化,写数据3. 将v2存储映射该成映射到v3存储上(v3存储和v2之间链路搭建,测通,远端设备)(Smar…...

职业院校云计算实训室建设方案全景剖析
在信息化社会的今天,云计算作为一项关键技术,正在迅速改变着教育和培训的方式。本文旨在探讨如何通过"职业院校云计算实训室建设方案",为学生提供一个现代化、高效的学习和研究环境,以适应云计算技术的发展和市场需求。…...

VS Code安装与vue项目新建
1、下载安装node.js、VS Code node.js官网下载 Visual Studio Code官网下载 # 查看node.js是否安装成功 node -v npm -v # 定义镜像路径 npm config set registry https://registry.npmmirror.com # 查看是否配置成功 npm config get# 安装webpack npm install webpack -g #…...

如何在Java中将数据库查询结果转换为枚举类型
前言 在开发过程中,我们经常需要将从数据库获取的字符串或数字转换为更具语义的枚举类型。这不仅可以提高代码的可读性,还可以确保类型安全。这时候我们从数据库查出来的值如何通过枚举转换返回? 1. 构建枚举类型 首先,我们需要…...

秋招突击——8、20——知识补充——Java容器
文章目录 引言正文总览ArrayListLinkedListQueue & Stack & ArrayDequePriorityQueueHashSet & HashMapLinkedHashSet & LinkedHashMapTreeSet & TreeMap 面…...

IOS 06 OC调用Swift第三方框架
前面文章05讲的是在OC项目中,调用Swift代码,而在真实开发过程中,在OC项目中调用Swift第三方框架场景用的是非常多的,所以我们也了解在OC项目如何使用Swift写的三方框架。 实现流程: 1、OCUseSwiftTest;在…...

SAP和致远OA系统集成案例
一、项目介绍 重庆某控股(集团)有限公司是一家集合汽柴油动力及终端、摩托车、储能电源、汽车零部件、金融服务等产业的多元化集团公司,业务遍布全球80多个国家及地区,2021年营业收入达80亿元。 为推动集团信息化、数字化转型…...

19 OptionMenu 组件
OptionMenu 组件使用指南 Tkinter 的 OptionMenu 组件是一个下拉选择框,允许用户从一组预定义的选项中选择一个。它通常用于提供用户一个有限的选项集合来选择。以下是对 OptionMenu 组件的详细说明和一个使用案例。 OptionMenu 组件属性 variable: 与 OptionMen…...

【C语言】字符函数与字符串函数(上)
字符函数与字符串函数(上) 文章目录 字符函数与字符串函数(上)1.字符分类函数2.字符转换函数3.strlen的使用和模拟实现3.1使用示例:3.2模拟实现 4.strcpy的使用和模拟实现4.1使用示例:4.2模拟实现 5.strcat的使用和模拟…...

机器学习系列—深入探索弗里德曼检验:非参数统计分析的利器
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...

【ubutnu18.04】k8s 部署4: worker节点配置1.31.0和containerd 1.7.20
上一篇:【ubutnu24.04】k8s部署3:重新安装1.31.0并init成功 worker 节点之一是ubuntu18.04主要参考 How Install Kubernetes on Ubuntu 24.04 (Step-by-Step Guide) 重点参考 ubuntu24.04 作为master反复配置kubelet root@PerfSvr:/home/zhangbin/perfwork/k8sadmin# sudo kub…...

android kotlin集成WorkManager实现定时获取数据
在Android中使用Kotlin集成WorkManager来实现定时获取数据是一个很常见的需求。WorkManager可以帮助你在设备处于闲置或应用被关闭时执行后台任务,特别适用于需要在特定时间间隔内重复执行的任务。以下是实现步骤: 1. 添加依赖项 首先,在你…...

BvSP_ Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction
BvSP: Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction 英文题目BvSP: Broad-view Soft Prompting for Few-Shot Aspect Sentiment Quad Prediction中文题目BvSP:面向少样本方面情感四元预测的广视角软提示论文地址aclanthology.org/202…...

React+Vis.js(05):vis.js的节点的点击事件
文章目录 需求实现思路抽屉实现完整代码需求 双击节点,弹出右侧的“抽屉”,显示节点的详细信息 实现思路 vis.network提供了一个doubleClick事件,代码如下: network.on(doubleClick, function (properties) {// console.log(nodes);let id = properties...

今日(2024 年 8 月 19 日)科技新闻
科大讯飞推出星火极速超拟人交互:8 月 19 日,科大讯飞宣布星火语音大模型更新,正式推出星火极速超拟人交互,并将其能力落地在讯飞星火 APP “小星畅聊” 功能中。该交互响应速度更快,能感知用户情绪变化并共情回应&…...

Python 虚拟环境
为什么要创建虚拟环境 创建 Python 虚拟环境的主要目的是为了解决依赖管理的问题,特别是在开发多个项目或部署应用程序时,虚拟环境具有以下几个优势: 依赖隔离: 不同的项目可能需要不同版本的 Python 解释器和库。通过创建虚拟环…...

Redis RDB三两事
rdb:将数据库的快照以二进制格式保存在文件中,redis重启后直接加载数据。可以通过save和bgsave命令生成rdb。当然我们可以在生成rdb文件时指定规则,例如 save 60 1000 如果60秒内不少于1000个key发生了改动,则生成一个新的rdb文件…...

分布式高可用架构设计
一、限流 1、单机限流 如图,应用C的资源c/x被上游的应用A和应用C并发访问,应用C的系统能力支持c/x资源最高5000/qps的访问量;为了不让高并发流量或尖峰流量压垮应用C,可以针对应用C的资源c/x做限流;比如设置限流4500…...

GATK SampleList接口介绍
在 GATK 中,SampleList 是一个接口,用于表示一个样本列表。这些样本通常是在基因组分析过程中被处理的不同生物样本。SampleList 接口提供了访问这些样本的一些基本方法,通常用于多样本分析任务,比如变异检测或基因组重测序。 SampleList 接口的方法 SampleList 接口定义…...

00后是真卷不过,工作没两年,跳槽到我们公司起薪20K都快接近我了
在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…...

树莓派Pico C/C++ 开发环境搭建(一键完成版)
树莓派Pico C/C 开发环境搭建(一键完成版) 因为之前使用过MicroPython开发过树莓派Pico,总觉得用起来怪怪的。正好最近树莓怕发布了新一代的MCU——RP2350,之前的RP2040在各个平台都有所降价,因此,买了几块。同时因为之前是玩stm…...

【计算机组成原理】二、数据的表示和运算:1.数值与编码(十进制二进制转换、BCD码、ASCII码、汉字编码、奇偶校验码、循环冗余检测CRC、海明码)
二、数据的表示和运算 文章目录 二、数据的表示和运算1.数值与编码1.1数据存储和排列❗1.2十进制转换1.2.1整数1.2.2小数 1.3二进制转换1.3.1 B->O1.3.2 B->H 1.4真值&机器数1.5 BCD码1.6 ASCII码1.7汉字与GBK1.8 UTF1.9检错码1.9.1奇偶校验码1.9.2循环冗余检测CRC1.…...

汇编语言中的艺术:数据压缩与解压缩技术
标题:汇编语言中的艺术:数据压缩与解压缩技术 数据压缩是计算机科学中的一项基本技术,它通过减少数据的冗余来降低存储或传输所需的空间。在低级语言如汇编语言中实现数据压缩和解压缩,不仅是一种技术挑战,也是对硬件…...

【Alibaba Cola 状态机】重点解析以及实践案例
【Alibaba Cola 状态机】重点解析以及实践案例 1. 状态模式 状态模式是一种行为型设计模式,允许对象在内部状态改变时改变其行为,简单地讲就是,一个拥有状态的context对象,在不同状态下,其行为会发生改变。看起来是改…...

购买商城源码前需要考虑哪些方面?
前言 购买商城源码前需要考虑的方面包括功能满足、技术兼容性、可扩展性、公司实力、客户评价、安全性与稳定性等。 购买商城源码是一项重要决策,需要综合考虑多个因素。以下是详细的考虑方面: 1.功能满足: 确保所选的源码能够支持企业所…...

MongoDB快速入门CRUD
1. 数据库管理 1.1 切换数据库 切换到名为 myDatabase 的数据库。如果该数据库不存在,MongoDB 会在第一次写入数据时自动创建它。 use myDatabase;1.2 查看当前数据库 显示当前使用的数据库的名称。 db; 1.3 显示所有数据库 列出当前 MongoDB 实例中的所有数…...

【python基础】—利用pandas读取或写入mysql表数据
文章目录 一、read_sql()二、to_sql()三、连接数据库方式—MySQL1、用sqlalchemy包构建数据库链接2、用DBAPI构建数据库链接 四、容易遇到的问题 一、read_sql() 功能 将 SQL 查询/数据库表读入 DataFrame。 语法 读取数据库(通过SQL语句或表名) pand…...

C/C++信号量
文章目录 一、信号量介绍1.1 什么是信号量1.2 信号量的原子性1.3 信号量的使用 二、C语言使用2.1 函数接口2.2 信号量代码 三、C20使用3.1 函数接口 四、C11模拟信号量 一、信号量介绍 1.1 什么是信号量 信号量是一种特殊的变量,是操作系统层面的,可以…...

SSL Pining 问题解决方案
实战案例 为了能够更好的复现 SSL Pining 场景,我们对一个 App(https:app4.scrape.center)进行抓包,这个 App 包含了 SSL Pining 的相关设置,如果我们将手机的代理设置为抓包软件提供的代理服务,那么这个 …...

【Spring Boot】全局异常处理
目录 背景 前言 设计步骤 1.定义异常信息类: 2.自定义异常: 3.创建全局异常处理类 4.在控制器中抛出异常 5.输出 捕获 Valid 校验异常 背景 去面试的时候被问到SpringBoot项目中,如何处理全局异常的,也就是如何捕获全局异…...