【记一次vsan数据救援的经历】

news2024/12/23 8:22:33

记一次vsan数据救援的经历

  • 1. 背景
  • 2. 事情起因:
        • 以下是他自述详细操作步骤:
  • 事前盘点:
  • 救援前分析与安排
  • 第一阶段工作:
  • 第二阶段工作:
  • 针对不可访问对象分的救援阶段
        • 阶段一 :学习vsan 知识,并检查当前情况
        • 阶段二: 联系vmware售后支持
        • 阶段三: 在技术论坛上寻找高人指高阶段
        • 阶段四: 自己尝试修复阶段
        • 后记

1. 背景

数据中心拓补图

业主有三台相同型配置的服务器,组合成了一个最小节点数(>=3)要求的vsan集群.
vcenter 安装在1号机的本地硬盘上。2、3号主机上也复制了一份备用(旧数据)
整个vmware产品是7.0.3. vcetner 是vcsa安装方式。

数据中心原规划是做为研发实验环境的目标建立的,为缓解客户一次性投入费用过大,计划第三期才提交数据备份方案,系统已试用了一年,还在建设中, 当时正在进行第二期的建设,给业主内网建设internal各项子系统, AD、DNS系统建立起来后,计划将各个已建设的子系统加入它们;
业主已经迁移了几个重要的业务系统进来,但备份系统还没有实施(这是个大问题);
我们团队第一次使用vsan产品,团队vsan的知识经验少,运行一年中又没有进入vsan运维。

2. 事情起因:

周六,同事原计划想将vcenter 由初始安装时使用https://ip方式,更改为https://dnsname 方式。
改了名字后,发现vcenter等服务无法启动,只有https://ip:5480方式还能用。
努力做了多次,无果,想改回来,但无法改(事后证明可以改回来,但服务仍无法启动)
他没多想,直接又在1号机上布署了新的vcenter,想将3台主机重新加入该新的vcenter,而重新将主机加入vcenter,
需要使主机进入维护模式。
而本来在正常vcenter里,操作使主机正常的维护模式,vsan默认的选项时”确保数据迁移安全“,但偏偏他是通过登录1号主机后,操作主机进入维护模式,而该操作时,vsan默认的选项是”不迁移数据“。
另外HA也没有关闭。

以下是他自述详细操作步骤:

  1. 上周四下午3点15分
    1、在vCenter管理界面修改vCenter主机名、DNS,配置后出现网络更新失败
    2、配置后管理界面与vCenter Web client也无法启动
    3、重启vCenter虚拟机,还是无法进入vCenter管理与vCenter Web client,进入vCenter虚拟机,发现vsphere服务没有启动,重置证书与还原主机名与DNS,vCenter管理界面可以登录,vCenter Web client还是无法进入
    4、计划周六重新部署vCenter,并将vSAN迁移至新vCenter中

  2. 周六下午1点
    1、配置vsan3号主机进入维护模式“无数据迁移”
    2、发现2号机有虚拟机在启动,把2号机启动的虚拟机关机,配置vsan2号主机进入维护模式“无数据迁移”
    3、vsan集群有虚拟机自动启动,vsan1号主机无法配置维护模式,把vsan 2号主机恢复正常模式,把3号主机恢复正常模式
    4、把1号机启动的虚拟机关机,再把3号主机配置维护模式;把2号主机配置维护模式;配置1号主机配置维护模式
    5、发现vsan集群中虚拟机异常,把所有主机恢复正常模式
    6、打电话给xx,等待xx到达,了解具体情况尝试配置故障vCenter

  3. 周六晚上
    1、与xx进行vCenter修复,到周日下午3点,vCenter无法恢复

  4. 周日下午3点
    1、启动备用vCenter,重连vsan主机
    2、等待vCenter同步还原工作
    3、手动点击vsan对象立即还原,等待还原
    4、欲清除不可用对象,无法清除,遂保持原样,等待还原工作

    损失情况
    业主几乎所有重要的业务系统均不可访问,损失惨重。

事前盘点:

这件事就是典型的缺乏安全生产而产生一连串低级错误、失误造成的人祸:
事前对vcenter、vsan等知识不主动学习
公司在项目还没采购备份系统前,对项目实施过程安全教育不够,检查力度不足。
项目部在实施过程中,未因地制宜,利用现有条件进行数据备份和快照操作。
具体员工安全素质不足,在操作前未进行充分论证方案可行性
。。。
但问题已发生,所以各事情其实并行在处理, 但此文重点讲解后来数据是如何被恢复的(顺带讲一下vcenter的问题)。

救援前分析与安排

考虑到周一前业主的所有业务要运转正常,所以处理内容按时间点分两阶段,前面是尝试将vcenter恢复启来,后面才是不得已下,一边给业主重新搭建新的业务系统,人肉从外部找回数据并放入新的业务系统中。一边想办法恢复不可访问的数据。

第一阶段工作:

容量情况
恢复vcenter服务,待续
简要结论:
a) 想vcenter 通过把主机名从localhost改名为xx.yy后,再重新更新证书的方案是不能成功的 (vcsa服务启动不了);
b) 再改回来,也无法再让vcsa服务启动;
c) 必须重新安装一个新的vcenter,再安装时设置新配置信息
由于在2,3号机中均有旧的克隆备份,所以最终启用了2号机的vcenter备份vm机

第二阶段工作:

核心目标与工作: 将26个不可访问对象中的vmdk数据恢复出来
26个不可访问的对象
同步显示有约5.8G数据需要同步,但一直没有任何进展(忘计截图了)
其中两个vm 虚机: SVN与 Edisk 关键业务系统均在不可访问对象中,所以明确了最小目标,将这两个数据恢复回来。

针对不可访问对象分的救援阶段

阶段一 :学习vsan 知识,并检查当前情况

在vmware官网知识库上相同情况的文章:
vSAN—维护—主机同时重启/集群完全关闭—数据不可用风险(60424)
看完这篇文章内容提到,有个事前预防的办法(下面的文章),事后解决方案,只给的提示是联系vmware工程师解决 😃
使用内置工具同时重启vSAN集群中的所有主机(70650)
按这个文章操作,到第14步,重启主机,提示执行操时
经过快速学习后知道,vsphere6.7之后,要在vcenter中选中vsan集群后,右键选择 ”关闭vsan集群“ 的命令才是正确的进入维护模式

使用 vsan 的 rvc命令, 可以查询到:

/172.31.24.24/xx数据中心/computers/VSAN集群> vsan.disks_stats ~/computers/VSAN集群
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
|                      |             |          | Num  | Capacity   |         |          | Physical | Physical | Physical | Logical  | Logical | Logical  | Status   |
| DisplayName          | Host        | DiskTier | Comp | Total      | Used    | Reserved | Capacity | Used     | Reserved | Capacity | Used    | Reserved | Health   |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe0260021f | 172.31.1.11 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43f63 | 172.31.1.11 | Capacity | 36   | 5589.02 GB | 32.37 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43f2b | 172.31.1.11 | Capacity | 43   | 5589.02 GB | 27.66 % | 0.27 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44767 | 172.31.1.11 | Capacity | 31   | 5589.02 GB | 45.35 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe0260021e | 172.31.1.11 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44957 | 172.31.1.11 | Capacity | 35   | 5589.02 GB | 30.02 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b447cb | 172.31.1.11 | Capacity | 32   | 5589.02 GB | 38.30 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b446cb | 172.31.1.11 | Capacity | 44   | 5589.02 GB | 31.08 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe02600e1e | 172.31.1.21 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43fb3 | 172.31.1.21 | Capacity | 46   | 5589.02 GB | 26.20 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b442d3 | 172.31.1.21 | Capacity | 46   | 5589.02 GB | 27.95 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43f6f | 172.31.1.21 | Capacity | 46   | 5589.02 GB | 22.14 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe02600e1f | 172.31.1.21 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44047 | 172.31.1.21 | Capacity | 46   | 5589.02 GB | 45.95 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b4470b | 172.31.1.21 | Capacity | 50   | 5589.02 GB | 25.03 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44387 | 172.31.1.21 | Capacity | 46   | 5589.02 GB | 30.78 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe0771d21e | 172.31.1.31 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44c3b | 172.31.1.31 | Capacity | 45   | 5589.02 GB | 32.23 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43fbf | 172.31.1.31 | Capacity | 44   | 5589.02 GB | 26.99 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b4499f | 172.31.1.31 | Capacity | 46   | 5589.02 GB | 27.60 % | 0.13 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
| naa.50015ebe0771d21f | 172.31.1.31 | Cache    | 0    | 447.13 GB  | 0.00 %  | 0.00 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b43f87 | 172.31.1.31 | Capacity | 45   | 5589.02 GB | 28.13 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44bf3 | 172.31.1.31 | Capacity | 46   | 5589.02 GB | 27.62 % | 0.20 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
| naa.5000c500e1b44257 | 172.31.1.31 | Capacity | 46   | 5589.02 GB | 25.41 % | 0.27 %   | N/A      | N/A      | N/A      | N/A      | N/A     | N/A      | OK (v15) |
+----------------------+-------------+----------+------+------------+---------+----------+----------+----------+----------+----------+---------+----------+----------+
/172.31.24.24/xx数据中心/computers/VSAN集群> vsan.check_state ~/computers/VSAN集群
2023-08-27 13:45:04 +0000: Step 1: Check for inaccessible vSAN objects
Detected 26 objects to be inaccessible
Detected d2928164-b62c-650b-0cbc-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 6fe89f63-967b-470c-1f4a-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 95f19f63-0a88-5810-43f1-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected d27fa264-ac74-5910-14a4-5853c06429fc on 172.31.1.31 to be inaccessible
Detected ac06db63-4e6d-e030-a369-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected d07aa264-8a53-e15e-a1bb-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 4465c364-72f2-8e6f-5c5d-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 624cb563-085f-dd74-a36f-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected d07aa264-3c14-8f77-7b9c-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 4c48ae64-28bf-dd89-54f6-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected 2680dd64-52c4-668f-c251-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 28a48164-b886-1d90-8d13-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected e967db63-1c72-6493-cc6a-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 7b239064-925c-6c93-7e3d-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 0dd5b363-82e7-4da4-e157-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected 8ccd8264-c652-4fa9-142b-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 4c27a063-c01c-45ac-960a-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected be53ae64-c0d5-c5b0-a9b7-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 2648ae64-a81e-72b6-b910-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected abb75d64-82d8-adb9-daa3-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 62249763-b83f-efb9-95d7-5853c06429fc on 172.31.1.31 to be inaccessible
Detected 39fab463-5e2e-a0c2-2278-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected 29a48164-5461-c8d1-a7ce-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected 29a48164-0c43-6dd7-43b8-5853c0642c12 on 172.31.1.31 to be inaccessible
Detected 4bf4b564-1063-09e6-bb85-5853c0642b44 on 172.31.1.31 to be inaccessible
Detected d27fa264-6ac8-03f9-27f1-5853c06429fc on 172.31.1.31 to be inaccessible

2023-08-27 13:45:04 +0000: Step 2: Check for invalid/inaccessible VMs
Detected VM 'Windows10_x64_test' as being 'inaccessible'
Detected VM 'CentOS7_x64_test' as being 'inaccessible'
Detected VM 'Windows_2019_NET_OnlineServer' as being 'inaccessible'
Detected VM 'Windows_2019_x64_SVN' as being 'inaccessible'
Detected VM 'W2022_X64_Core_Partner_XY_ADTRee' as being 'orphaned'
Detected VM 'W2022_X64_Template3' as being 'inaccessible'
Detected VM 'W2022_X64_XY_DHCP' as being 'inaccessible'
Detected VM 'CentOS7_x64_EDisk' as being 'inaccessible'
Detected VM 'W2022_X64_Core_DC_XY_ADTRee' as being 'inaccessible'
Detected VM 'W2022_X64_Core_OA_XY_ADTRee' as being 'inaccessible'
Detected VM 'W2022_X64_ADS2022_DB' as being 'inaccessible'
Detected VM 'CentoS7 X64 For_VPN' as being 'inaccessible'
Detected VM 'CentOS7_X86_For_Freeradius' as being 'inaccessible'
Detected VM 'CentOS7_x64_EDisk (1)' as being 'inaccessible'

重点是这个:

vsan.object_info   ~/computers/VSAN集群 d2928164-b62c-650b-0cbc-5853c0642b44
DOM Object: d2928164-b62c-650b-0cbc-5853c0642b44 (v15, owner: 172.31.1.31, proxy owner: None, policy: stripeWidth = 1, cacheReservation = 0, proportionalCapacity = 0, hostFailuresToTolerate = 1, forceProvisioning = 0, spbmProfileId = aa6d5a82-1c88-45da-85d3-3d74b91a5bad, spbmProfileGenerationNumber = 0, CSN = 898, SCSN = 897, spbmProfileName = vSAN Default Storage Policy)
  RAID_1
    RAID_D
      Component: d2928164-fc88-710c-24ad-5853c0642b44 (state: ABSENT (6), csn: STALE (888!=898), host: 172.31.1.11, capacity: naa.5000c500e1b43f2b, cache: naa.50015ebe0260021f,
                                                       dataToSync: 0.02 GB, votes: 1, usage: 15.3 GB, proxy component: false)
      Component: c08de964-1213-e344-e681-5853c0642b44 (state: ACTIVE (5), host: 172.31.1.21, capacity: naa.5000c500e1b442d3, cache: naa.50015ebe02600e1e,
                                                       votes: 1, usage: 0.0 GB, proxy component: false)
    Component: d2928164-12f7-740c-312b-5853c0642b44 (state: ABSENT (6), csn: STALE (891!=898), host: 172.31.1.31, capacity: naa.5000c500e1b43fbf, cache: naa.50015ebe0771d21e,
                                                     dataToSync: 100.00 GB, votes: 1, usage: 15.3 GB, proxy component: false)
  Witness: d2928164-2272-770c-15af-5853c0642b44 (state: ACTIVE (5), host: 172.31.1.21, capacity: naa.5000c500e1b44387, cache: naa.50015ebe02600e1f,
                                                 votes: 1, usage: 0.0 GB, proxy component: false)
  Extended attributes:
    Address space: 107374182400B (100.00 GB)
    Object class: vdisk
    Object path: /vmfs/volumes/vsan:528f620b6bdf15ac-0175538fa91d16fe/d1928164-a4da-3dbe-47c7-5853c0642b44/W2022_X64_DC_XY_DNS1.vmdk
    Object capabilities: NONE

从数据报告上可以看出来, 这个vsan不可访问对象类似一个磁盘阵列,且阵列为镜像(raid1)磁盘+见证元数据构成,只是三个对象的CSN(版本顺序标识)都不同,且数据盘是”缺失“状态,所以应该是这个问题,即没有按操作规范操作,使得 磁盘组态进入了脑裂状态,所以vsan系统无法自动解决这个冲突,即卡住了。
我猜想,数据并没有丢失,只需要使用某个”高级指令“,指定见证与某个数据镜像强制组合,即可恢复它。但找遍网上,和rvc手册, esxi的命令手册,未发现相关处理的案例,自己第一次接触(就只有两天的知识)不敢冒然处理。

阶段二: 联系vmware售后支持

因为vsphere的仍在售后服务期中,周二通过 联想vmware售后,并顺利升级到vmware三线级别的服务。本想着顺利得到解决,但花费了两天,我凭直觉,感受到工程师更多的只是在调取系统的各种日志和操作回传回去,我一再多次的提出我的诉求是,是否能帮我从”被锁定“的对象修复或直接提取出我需要的vmdk数据,但对方表示,他们也没有特殊内部命令,一直反复再跟我对当时操作的细节后,于周四下午,给我发来邮件,告诉我处理结果是:
最后处理结果
我马上给发去邮件,将我心中的疑问提出来,希望他们给予回答。
发去我的疑问
很遗憾,之后再也没有收到回复邮件

阶段三: 在技术论坛上寻找高人指高阶段

无可奈何下,只得在多个技术论坛上重复发贴,悬赏寻求帮助,幸运的是,晚上有个网友答应帮我看一下。
在简单询问了事情经过后,给其远程ssh的方式,使用了以下指令:
先在vcenter 172.31.24.24 主机上执行rvc命令 vsan.check_state -r 1 取得不可访问对象所在的主机
然后在指示的主机下,执行以下命令
在vsish -e set /vmkModule/vsan/dom/ownerAbdicate uuid(不可访问对象)后,很快出现了同步的现象。
原先26个不可访问对象,变为12个,又继续检查和研究对象的情况, 再次尝试,又变成了还有8个不可访问对象,如此边研究边处理,最终变成了只有1个不可访问对象,即Edisk虚机所在的对象。
重要操作

Edisk由业主员工所建,划了有足足30T,分了两个vmdk磁盘,系统一个500GB,数据盘30T.
但一直反复尝试,直到凌晨4点,仍始终不见其同步, 分析是否涉及的内部组件过大了(330个组件),最终放弃,让我再找办法再试。
再次电话联系 vmware工程师,告知我所做的努力,并再提出我的诉求,竟然得到的回答是,让我再写一份报告给他们,无奈,只能再写邮件。
第二次询问vmware工程师
写完后已是周五,联想工程师说,vmware工程师周末是不工作的,让我等到周一上班时再回复我。
到了周六一早,我继续在网上发布悬赏, 另一个网友也答应帮我看一下,他的思路是 ,让我把HA,vCenter,所有vm机关闭情况下,重新再让每台主机依次进入维护模式(vsan模式选择 确保数据安全),再退出维护模式。
我按其提示,做了第一次,没有反应, 再重做了一次,仍然没反应,并结合第一位网友给的方案,也没有任何效果。

阶段四: 自己尝试修复阶段

时间到了周六中午时分,根据这些天得到的信息,突然冒出一个想法:
是否可以案件重演,根据 vsan.check_state -r 1 显示当前不可访问对象所在的主机情况,按顺序 模拟”正确“的进入维护模式,再回到正常模式。
所以根据每次操作显示的顺序,分别让3,1,2主机进入维护模式,再退出正常模式后,突然发现 数据同步出现了很多数据对象,觉得有戏。
约半小时后,所有不可访问对象均消失。
至此,经事后再次确认,所有数据均已恢复。
盘2恢复

后记

周一上班后,联想售后工程师来电,再次又问了一些问题,我提出,目前所有数据已恢复,但没有他们的努力,我想知道为什么。 他反复暗示我,网友提供的”土办法“是有高度风险的,甚至会使用非法泄露的内部命令。
我不解的请他给我指出,我们上述的操作,哪一些是非法的指令,他答复,没有,都是公开的指令,所以我再次问他,为什么我能直觉判断他们没有努力,是因为,他们根本就没有任何尝试去修复(给了他们远程访问),且知识库60424文章给出的解决方案就是找他们,最后,他再次跟我说,那这样,你再写一份事情的经过发送于他们的邮箱做报告吧,我只能无奈的拒绝。
至今,vmware在给出我不可修复的邮件后,对我二次(三次)的询问和报告,均未给我做出任何书面回复(只有上面提到的电话单向沟通)。

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

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

相关文章

CCOS 2023 | 周进院长出席会议并于多个分会场担任讲者

9月6-10日,由中华医学会、中华医学会眼科学分会主办,湖南省医学会、湖南省医学会眼科学专业委员会承办的第二十七次全国眼科学术大会(CCOS2023)将在长沙国际会议中心和长沙国际会展中心举行。 此次大会以“凝聚高质量发展共识 共筑新时代光明未来”为主题…

人工智能AI 全栈体系(一)

第一章 神经网络是如何实现的 这些年人工智能蓬勃发展,在语音识别、图像识别、自然语言处理等多个领域得到了很好的应用。推动这波人工智能浪潮的无疑是深度学习。所谓的深度学习实际上就是多层神经网络,至少到目前为止,深度学习基本上是用神…

Keepalived编译安装报错处理记录

一、背景 因国产化OS改造,对Keepalived迁移重新部署,现场版本比较老,采用2.0.6版本,本次迁移,只迁移配置文件和自启动服务;其他考虑环境依赖,在目标OS上重新编译安装。 资源链接:o…

数据结构题型1--头插法建立单链表

下面是可运行的代码 #include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 100 #define ERROR 0 #define OK 1typedef struct LNode {Elemtype data;//数据域struct LNode* next;//指针域 }LNode,* LinkList;bool InitList(…

MyBatis: 插件是怎么起作用的?

示例&#xff1a; 假如配置了PageHelper插件 public class MyBatisTest10 {public static void main(String[] args) throws IOException {SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.x…

iOS开发Swift-11-正向传值,搜索,反向传值,城市id获取天气,光标聚焦,拦截空白/空格字符-和风天气App次页代码

1.创建次页的controller class 在Main中选择次界面,点击左上方黄色的圈圈,将它的Custom Class中的class修改为QueryViewController. 将QueryViewController中自动生成的首页传值方法复制到ViewController中去.去掉注释符号. 2.在Main中给1页向2页传值的箭头命名为QueryVi…

怎么在树莓派上搭建WordPress博客网站,并发布到外网可访问?

文章目录 序幕概述1. 安装 PHP2. 安装MySQL数据库3. 安装 Wordpress4. 设置您的 WordPress 数据库设置 MySQL/MariaDB创建 WordPress 数据库 5. WordPress configuration6. 将WordPress站点发布到公网安装相对URL插件修改config.php配置 7. 支持好友链接样式8. 定制主题 序幕 …

msvcp100.dll缺失的处理方法,4个修复msvcp100.dll的技巧

其实只要是经常使用电脑的人&#xff0c;那么迟早会遇到一个问题&#xff0c;那就是dll文件的丢失&#xff0c;它会提示你的电脑缺失了某某dll文件&#xff0c;如msvcp100.dll找不到&#xff0c;msvcp100.dll缺失等等&#xff0c;今天我们主要来讲一下&#xff0c;万一你的电脑…

车间作业分析重点分析的内容是哪些?

我们通常所说的车间作业分析&#xff0c;就是为提高作业效率和消除浪费而充分了解作业内容的构成因素和区分作业&#xff0c;并了解其组合是否有浪费现象&#xff0c;为提高分析要素作业的方法。 经过作业分析&#xff0c;可以查漏补缺&#xff0c;能发现平时正常作业时不易觉察…

工商银行潍坊分行党建RPA机器人项目解析

01 案例背景&#xff1a;银行业掀起引入RPA加速实现数字化转型的浪潮 近年来&#xff0c;金融科技的蓬勃发展极大促进了银行的业务创新&#xff0c;新技术、新业态层出不穷。随着银行业务和科技的融合逐步落实&#xff0c;银行业务正朝着线上化、智能化转变。科技赋能的转型范…

关于运行franka_ros包中的franka_gazebo报错VMware: vmw_ioctl_command error 无效的参数.

参考的博文&#xff0c;感谢&#xff0c;解决Vmware下虚拟机下打开gazebo报错 &#xff0c;VMware: vmw_ioctl_command error 无效的参数. 首先第一个VMware: vmw_ioctl_command error 无效的参数的问题。这应该是虚拟机的bug&#xff0c;毕竟使用虚拟机和真实的物理机上是有差…

Mysql数据库基础总结:

什么是数据库&#xff1a; 数据库&#xff08;DataBase&#xff09;&#xff1a;存储和管理数据的一个仓库。 数据库类型分为&#xff1a;关系型数据库和非关系型数据库。 关系型数据库&#xff08;SQL&#xff09;&#xff1a;存储的数据以行和列为格式&#xff0c;类似于e…

二.RocketMQ基础概念及名词说明

RocketMQ基础概念及名词说明 一&#xff1a;RocketMQ基本概念1.消息&#xff08;Message&#xff09;2.生产者(Producer)3.消费者(Consumer)4.分组(Group)&#xff1a;4.主题&#xff08;Topic&#xff09;5.标签&#xff08;Tag&#xff09;6.队列&#xff08;Queue&#xff0…

Springboot 实践(15)spring config 配置与运用—自动刷新

目前&#xff0c;网络上讲解spring config的自动刷新&#xff0c;都是通过git服务站的webhook功能执行“actuator/bus-refresh”服务实现的自动刷新。我们的前文讲解的配置中心&#xff0c;配置中心仓库使用的时本地地址&#xff0c;如下图所示&#xff1a; 那么&#xff0c;配…

JVM 虚拟机 ---> JVM 基础概念

文章目录 JVM 虚拟机 ---> JVM 基础概念一、Java 跨平台主要原因 二、JVM 的组成结构三、Java 代码执行流程四、JVM 的生命周期 JVM 虚拟机 —> JVM 基础概念 一、Java 跨平台 Java是一种可跨平台的编程语言&#xff0c;我们通常把CPU处理器与操作系统构成的计算机系统…

记录vxe-table show-overflow失效问题

后来发现&#xff0c;在使用的过程中发现vxe-table的show-overflow在普通的界面是生效的&#xff0c;但是在el-dialog对话框始终不出现 超出的文本鼠标移上去没有显示全部 排查后发现和tooltip的z-index有关&#xff0c;modal的z-index比tooltip的z-index大&#xff0c; 方法…

行业报告 | 智慧三角:长三角掀起AI产业热潮

原创 | 文 BFT机器人 产业集群是指在特定地理区域内&#xff0c;一群相关产业相互依存、相互关联、相互支持&#xff0c;形成密集的产业网络和价值链条的现象&#xff0c;这些相关产业可能涵盖整个产业链的不同环节&#xff0c;从原材料供应到产品研发、生产、销售和服务等多个…

回显服务器

写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接多…

【计算机组成原理】读书笔记第一期:对程序员来说CPU是什么

目录 写在开头 CPU的结构 功能的角度 程序员的角度 寄存器与程序的执行流程 程序计数器 条件分支与循环 函数的调用流程 通过地址和索引实现数组 CPU的处理过程 结尾 写在开头 近期经他人推荐&#xff0c;正在阅读《程序是怎样跑起来的》这本书&#xff08;作者&…

为虚拟化环境带来更强I/O性能!SR-IOV技术简介

在 ICT 行业&#xff0c;不断提高硬件资源的使用效率是技术发展路线中亘古不变的主旋律。虚拟化作为其中最为主要的解决方式之一&#xff0c;其带来的影响早已不言而喻。而今天我们要说的&#xff0c;正是虚拟化中一项非常重要的技术 —— SR-IOV&#xff0c;也是下一代高端企业…