vmware centos关闭时间同步 在vmware中的CENTOS中复现故障时,需要调整系统时间,但是调整系统时间以后,没过几秒,系统时间又被设置成与宿主机时间一致。
本来以为是centos会自动同步,找了半天怎么设置,后来查看vmware的设置,发现原来是虚拟机可以配置。
在虚拟机上鼠标右键->设置->高级-> 同步时间,将同步时间后的复选框取消勾选。
然后再在虚拟及CENTOS中设置时间即可。
date -s 2009-08-16: (设置系统日期,不修改时间) date -s 11:30:00(设置系统时间,不修改日期) date -s "2009-08-16 11:30:00"(设置系统日期和时间) 修改完系统时间后,执行clock -w,将系统时间写入CMOS,即将系统时间和硬件时间同步。 参考文档: https://developer.aliyun.com/article/478813
时间:
|
阅读:
17 字 ~1分钟
VSCODE markdown 实时预览 1.首先不要安装markdown插件,这个应该是vscode内置了,我之前装了Markdown All in One,但是卸载了发现也能正常预览。
2.在markdown文档内容处右键,打开侧边预览。
或者
按命令快捷键 F1,搜索 Markdown:MPE:打开侧边预览 ,或者打开侧边预览就可以正常打开一个侧边内容区进行预览了,我之前因为装了Markdown All in One 所以搜索结果非常受干扰。
时间:
|
阅读:
88 字 ~1分钟
Vue Jsp页面值绑定出现换行导致syntaxerror 问题处理 背景:老项目是jsp渲染页面,为了便于开发一些功能,于是在jsp页面中集成了vue。
今天开发的一个修改功能,在渲染时,使用element-ui的修改按钮无法渲染出来,在浏览器看控制台有报 syntaxerror的错误。
因为修改功能是已经测试过的功能,没有遇到错误,所以应该是内容的问题。
<script> let vm = new Vue({ el: '#app-Detail', data: function () { return { appIntro: '${app.intro}' } } ………… } </script> 然后从源代码中看到从后台接收到的值的内容是有换行的
<script> let vm = new Vue({ el: '#app-Detail', data: function () { return { appIntro: ' 辅助系统,配置等相关信息 http://wiki.i…… 存储活动信息'} } ………… } </script> 解决方案:
增加dom元素接收后台传来的值,然后在vue初始化后调用jquery方法的方式对vue的属性赋值。
<span id="appIntro" style="display: none">${app.intro}</span> <script> let vm = new Vue({ el: '#app-Detail', data: function () { return { appIntro: '' } }, mounted: function () { this.
时间:
|
阅读:
185 字 ~1分钟
XEN、VMware ESXi、Hyper-V以及KVM架构解析 原文地址:https://cloud.tencent.com/developer/article/1041633
XEN 有简化虚拟模式,不需要设备驱动,能够保证每个虚拟用户系统相互独立,依赖于 service domains 来完成一些功能; Vmware ESXI 与 XEN 比较类似,包含设备驱动以及管理栈等基本要素,硬件支持依赖于 VMware 创建的驱动; Hyper-V 是基于 XEN 管理栈的修改; KVM 与 XEN 方式不同,KVM 是以 Linux 内核作为管理工具。
虚拟机的体系结构 1. XEN 体系结构 XEN 体系结构图如下:
Xen是一个开放源代码虚拟机监视器,由剑桥大学开发。Xen的缺点是操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性),所以比较麻烦。使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。Linux的官方内核在较早之前已经去掉了对Xen的支持。
一个 XEN 虚拟机环境主要由以下几部分组成:
XEN Hypervisor; Domain 0 —— Domain Management and Control(XEN DM&C); Domain U Guest(Dom U) PV Guest HVM Guest
Xen 三部分组成之间关系图
XEN Hypervisor :XENHypervisor 是介于操作系统和硬件之间的一个软件描述层。它负责在各个虚拟机之间进行 CPU 调度和内存分配。XEN Hypervisor 不仅抽象出虚拟机的硬件,同时还控制着各个虚拟机的执行。XEN Hypervisor 不会处理网络、存储设备、视频以及其他 I/O。
时间:
|
阅读:
51 字 ~1分钟
Xen虚拟化技术中PV和HVM的区别 原文地址:https://www.cnblogs.com/jiayy/p/3765591.html
Xen是一个开源的type-1或者裸机管理程序,它使得一个物理主机能够同时并行运行多个相同的或者不同的操作系统实例。Xen是目前唯一的开源可得的type-1管理程序。Xen被应用于许多商业和开源的应用程序中,比如:服务器虚拟化(server virtualization)、基础设施即服务(Infrastructure as a Service)、桌面虚拟化(desktop virtualization)、安全应用程序(security applications)、嵌入式和硬件设备(embedded and hardware appliances)。毫无疑问,Xen驱动着当今大部分的云计算市场。
Xen支持运行两种不同类型的虚拟机:半虚拟化(PV)和全虚拟化(HVM)。在一个单一的Xen系统中可以同时运行这两种不同类型的虚拟机。另外,在全虚拟化(HVM)虚拟机中也能够使用半虚拟化(PV)技术:实质上是创建一个半虚拟化(PV)和全虚拟化(HVM)的连续体。这种方式被称为PV on HVM。想要获取更多关于虚拟化的知识可以看这里
那么Xen虚拟化技术中的半虚拟化(PV)和全虚拟化(HVM)有什么区别呢?
Xen Paravirtualization (PV)
半虚拟化是由Xen引入的高效和轻量的虚拟化技术,随后被其他虚拟化平台采用。半虚拟化技术不需要物理机CPU含有虚拟化扩展。但是,要使虚拟机能够高效的运行在没有仿真或者虚拟仿真的硬件上,半虚拟化技术需要一个Xen-PV-enabled内核和PV驱动。可喜的是,Linux、NetBSD、FreeBSD和OpenSolaris都提供了Xen-PV-enabled内核。Linux内核从2.6.24版本起就使用了Linux pvops框架来支持Xen。这意味着半虚拟化技术可以在绝大多数的Liunx发行版上工作(除了那么内核很古老的发行版)。关于半虚拟化技术的更多信息可以看这里
Xen Full Virtualization (HVM)
全虚拟化或者叫硬件协助的虚拟化技术使用物理机CPU的虚拟化扩展来虚拟出虚拟机。全虚拟化技术需要Intel VT或者AMD-V硬件扩展。Xen使用Qemu来仿真PC硬件,包括BIOS、IDE硬盘控制器、VGA图形适配器(显卡)、USB控制器、网络适配器(网卡)等。虚拟机硬件扩展被用来提高仿真的性能。全虚拟化虚拟机不需要任何的内核支持。这意味着,Windows操作系统可以作为Xen的全虚拟化虚拟机使用(众所周知,除了微软没有谁可以修改Windows内核)。由于使用了仿真技术,通常来说全虚拟化虚拟机运行效果要逊于半虚拟化虚拟机。
PV on HVM
为了提高性能,全虚拟化虚拟机也可以使用一些特殊的半虚拟化设备驱动(PVHVM 或者 PV-on-HVM驱动)。这些半虚拟化驱动针对全虚拟化环境进行了优化并对磁盘和网络IO仿真进行分流,从而得到一个类似于或优于半虚拟化虚拟机性能的全虚拟化虚拟机。这意味着,你可以对只支持全虚拟化技术的操作系统进行优化,比如Windows。
Xen半虚拟化虚拟机自动使用PV驱动-因此不需要提供这些驱动,你已经在使用这些优化过的驱动了。另外,只有Xen全虚拟化虚拟机才需要PVHVM驱动。关于PV on HVM的更多信息可以看这里
PV in an HVM Container (PVH) - New in Xen 4.4
Xen 4.4会带来一个被称作PVH的新的虚拟化模式。实质上,它是一个使用了针对启动和I/O的半虚拟化驱动的半虚拟化模式。与全虚拟化不同的是,它使用了硬件虚拟化扩展,但是不需要进行仿真。在Xen 4.3发布后,xen-unstable会加入对此模式的补丁,Xen 4.4中将可以预览到这个功能。PVH拥有结合和权衡所以虚拟化模式优点的潜力,与此同时简化Xen的架构。
时间:
|
阅读:
248 字 ~2分钟
这是一个生产环境使用zookeeper异常的情况,错误是java.io.IOException: Packet len8854970 is out of range!。然后就换了一个namespace,就没有在出错,以为是偶然发生,所以没有重视。但是年后居然又出现问题,才意识到严重性。分析之后发现,每隔一段时间,某一个znode节点下超过客户端所设置的大小,客户端连接会失败,zkCli.sh操作该节点也会失败。如果对于简单依赖zookeeper的系统,这种错误可以容忍(但是必须解决);如果是强依赖zookeeper的系统,这种错误可以说是灾难。
1 发现问题 问题的发现比较曲折,首先是发现服务器磁盘写满了(吐槽下运维居然没有对磁盘添加监控),致使项目中的报警功能失效。然后就把无用日志删除,习(tou)惯(lan)的把异常的应用重启了下。幸好有个比较好的习惯就是,项目启动成功后,都会打看日志跟踪下,确定无误才会关掉终端。结果就被错误日志刷屏了:
ERROR 2017-02-20 10:45:44,729 [Curator-Framework-0] o.a.c.f.i.CuratorFrameworkImpl.logError() (CuratorFrameworkImpl.java:557) - Background retry gave up org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss at org.apache.curator.framework.imps.CuratorFrameworkImpl.performBackgroundOperation(CuratorFrameworkImpl.java:838) [curator-framework-2.10.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl.backgroundOperationsLoop(CuratorFrameworkImpl.java:809) [curator-framework-2.10.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl.access$300(CuratorFrameworkImpl.java:64) [curator-framework-2.10.0.jar:na] at org.apache.curator.framework.imps.CuratorFrameworkImpl$4.call(CuratorFrameworkImpl.java:267) [curator-framework-2.10.0.jar:na] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_111] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_111] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_111] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_111] 因为zookeeper的客户端使用的是Apache Curator,与zookeeper的连接断开会重新创建连接,所以会出现大量的连接失败异常。
2 分析问题 在这个项目中,对于zookeepr的使用有下面几种场景:
服务状态数据:将服务状态写入znode节点 服务注册:将服务地址写入znode节点 服务发现:获取znode节点中的可用服务地址 监听节点:监听某个znode节点或该节点的字节点状态 这几种情况都需要与zookeeper的znode节点创建连接,然后执行操作。根据错误提示,java.io.IOException: Packet len8854970 is out of range!
时间:
|
阅读:
107 字 ~1分钟
zookeeper连接报某个节点connection loss 测试环境有一套zookeeper,使用各种客户端总是会报connection loss的问题,但是直接在机器上进行连接是就没问题。之前没当回事,以为是客户端的bug。现在使用zkui进行管理时,报/dubbo节点 connection loss的问题,没报其他节点的问题。zkui 是java客户端,可以直接使用源码进行调试,我就在报异常的地方加了try catch,在异常时进行跳过,然后zkui可以正常展示加载数据了。
因为是 /dubbo节点除的问题,所以我直接在机器上连接zk,然后对/dubbo节点进行读取get和列表ls操作,然后报出如下错误。
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /dubbo 2022-08-02 12:10:19,859 [myid:] - WARN [main-SendThread(localhost:2181):ClientCnxn$SendThread@1164] - Session 0x100000333730010 for server localhost/127.0.0.1:2181, unexpected error, closing socket connection and attempting reconnect java.io.IOException: Packet len4724847 is out of range! at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:113) at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79) at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141) Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /dubbo at org.apache.zookeeper.KeeperException.create(KeeperException.java:102) at org.apache.zookeeper.KeeperException.create(KeeperException.java:54) at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1541) at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1569) at org.