- 博客(50)
- 收藏
- 关注
原创 分布式文件系统故障修复记录
新部署了一套分布式文件系统,使用了3个节点,大致看一下底层还是ceph,多了一层管理界面。在管理界面中配置了文件系统,并划分一个目录给NFS使用,需单独配置许可的客户端和数据狼配额,分配给k8s paas平台使用,同时PVE 环境也划分了一块空间作为备份,基本操作就这样。
2025-03-13 13:56:35
388
原创 PVE 环境快速部署
而在PVE环境中,也是可以将VM 转换为模版的,不过在部署时,需要采用克隆方式,系统提供了链接克隆和完全克隆两种方式。从测试情况看,这种场景下,PVE 的克隆好像无法识别到磁盘中是否有内容或者对其中真实数据与否进行区分,而是将整个磁盘的内容都复制一份。在使用备份时,使用了大约15分钟,使用备份恢复时,大约用了5分钟左右,(备份和恢复都用了远程NFS共享存储,中间使用千兆网络连接)。从这个测试情况看,在PVE环境中还是使用对某个VM进行备份再还原的方式实现VM部署的速度会更快一些,而不是使用完全克隆方式。
2025-02-26 12:01:01
217
原创 PVE使用一个物理网卡采用VLAN为管理IP和VM分配网络的问题
仔细查看前面的截图即可发现这一点,vm配置vlan100的tag后,无论是虚拟的三层接口(在vlan100上),还是外部物理交换机上属于vlan100的三层接口,都无法ping通,而抓包可以看到arp请求信息和返回信息都已经成功出现,说明arp请求正常,对端IP也正常回应了arp请求,但到了PVE主机就不走了,说明恰恰是PVE主机拦截了arp请求的返回数据给vm。从目前看到的现象是:无论是否勾选VLAN感知,在物理交换机一侧必须配置access 接口,不能配置trunk,否则,PVE将会无法连接。
2025-02-17 09:37:48
1209
原创 ssh 免密登陆服务器故障
在服务器上新建账户后,希望通过ssh免密或者通过证书登录系统,以提高服务器安全性。基本流程都已经做完,生成密钥,将公钥内容复制到账户home目录中的.ssh目录下的authorized_keys 文件。同时修改sshd_config文件,禁止通过password 登陆,开启证书访问。sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。通过对比发现,账户的home目录权限中,组权限有写权限,是775,其他正常设置为750。但之前建立的其他账户是可以通过证书访问的。
2024-09-20 12:57:38
646
原创 python asyncio 并发任务测试(1)
如果没有await,则除非子进程执行完毕,其他子进程无法执行,这就解释了为什么第二种没有await时,子进程变成了串行执行。可以看到,虽然开启了多个子进程,但子进程之间是串行关系,一个子进程结束后,另外一个子进程才能开始。4. time.sleep 是明显的阻塞语句,一般情况下能够立即返回的都不是阻塞语句,比如创建一个数据库连接,创建网络连接等都可以在协程中正确执行。另外还有一个问题:虽然子进程时近乎同时开始,但执行结束的时间确实串行的,又好像是进入了串行模式,一个执行结束另外一个才能得以执行。
2024-05-07 14:47:15
409
1
原创 nginx 编译安装sticky时报错处理
一般企事业单位的内网按照部门划分网段,ip hash 的负载均衡策略容易导致负载失衡,比如某个网段地址多,一些网段地址少,IP hash是基于IPv4地址的前三段来区分的(开发者可能觉得机器处理区分所有IP太累么?nginx1.24版本编译sticky模块报‘ngx_http_headers_in_t’ has no member named ‘cookies’的解决方案_error: ‘ngx_http_headers_in_t’ has no member named-优快云博客。
2024-01-31 10:04:18
1797
原创 PyVMomi 克隆虚拟机时将磁盘改为Thin模式
之前已经使用pyvmomi库实现了虚拟机的自动备份,不过由于备份的虚拟机都是较为重要的系统,磁盘都是厚置备模式,终于有一天,备份目标的空间不够了,导致几个虚拟机无法备份。在这个对象中,主要有RelocateSpec 和 configSpec两个对象,在这两个对象中都有deviceChange这个子对象,是网上找到的资料主要修改的目标。pyvmomi的示例程序比较简单,这个看起来不是很高级的需求竟然没有,看了下手动操作克隆时是可以修改的,就想着肯定是可以实现的。
2023-12-15 11:40:11
1090
原创 VMWare Vcenter Server克隆虚拟机所用端口
在进行虚拟机克隆时,vcenter server 主机通过 TCP 902 和443向esxi主机发送指令,ESXi主机通过 UDP 902 向目标ESXi主机传输数据(复制虚拟机磁盘文件),当磁盘文件复制完毕后,需要将虚拟机配置文件通过vcenter server 部署到目标主机,此时需要源主机通过UDP 902端口与vcenter server 通信,vcenter server 也需要通过TCP 902端口将配置文件复制到目标主机。2. ESXi 主机需要访问的外部端口。
2023-10-07 14:18:06
2527
原创 rocky 9.2 安装gitlab-ce记录
external_url 'http://192.168.8.67' 修改为服务器的IP即可。首次登录口令在/etc/gitlab/initial_root_password 中,24小时有效。访问 https://packages.gitlab.com/gitlab/gitlab-ce。可以下载对应的安装包,rockey 9 对应的el9 这个os版本。gitlab-ctl reconfigure 使配置生效。据说prometheus 很费电,关掉。安装完毕后,系统会提示你如何配置。
2023-09-08 17:45:53
390
原创 linux环境配置 svn 及用户权限
1. 配置svnserve.conf。一、安装subversion。也可以下载源码自行编译安装。#组名=用户1,用户2。2. 配置authz。3.配置passwd。
2023-09-08 17:44:15
1082
原创 mysql 8.0.34 部署问题记录
mysql 社区版下载时需要下载与操作系统版本匹配的安装包,本次遇到的问题是现在的安装包与操作系统不匹配,安装时提示了依赖包未有安装,开发组直接使用nodeps 强行安装,导致安装后数据库有莫名问题,一直无法解决。要点: 数据库安装时默认指向了/var/lib/mysql的位置,第一次启动服务时必须使用默认位置,也就是不能修改my.cnf配置,第一次启动后,关闭数据库,再来修改就OK了。安装数据库后,直接修改了my.cnf文件的datadir指向,结果数据库服务无法正常启动。(5) 刷新权限,使配置生效。
2023-09-08 17:42:44
523
原创 rsync同步文件时遇到的问题
经过检查发现,客户端 windows 10 系统中之前安装了openssh ,将cwrsync 的bin目录设置为PATH环境变量,并将其顺序放在openssh 之前,问题解决。客户端 :windows 10 ,服务器 Rocky 9.2。(3)不存在空间不足或者文件路径不对以及文件名错误等问题。(2)两侧检查rsync版本都是3.2.3。(1) 使用ssh 工具远程服务器没有问题。
2023-09-08 17:40:42
3506
1
原创 nexus 配置pypi代理
在配置pypi代理时,和配置npm、maven代理有所不同,在配置远程地址时,需要将大部分国内源带的simple目录去掉,然后在访问时再将这个simple加上。在研发环境中由于网络限制,无法访问外网,但经常使用npm、maven、pip等工具,这种场景中使用nexus 做代理是一个比较好的解决办法。https://pypi.tuna.tsinghua.com/simple ,而是将simple去掉了。此时nexus 系统提供的访问路径是。此处可以看到remote storage中的链接不是网络中常见的。
2023-06-27 11:08:04
1539
1
原创 vue3 setup语法糖学习
在vue3 之前,使用data、methods、mounted等部分进行编码,当规模稍大时,data定义数据,methods定义方法看起来会显得逻辑不清,看了数据再去方法中找函数。reactive响应式对象实际上时javascript proxy ,当使用reactive函数作用域一个对象时,返回对象与原始对象已经不同。以确保无论多少次更改,更新只更新一次。ref 在模板中自动解包,所以模板中不需要value,而reactive 作用于对象,没有value这个值,模板中可以直接应用对象。
2023-04-26 09:50:08
179
原创 python matplotlib 图片显示中文
到linux系统用户的home中,./.cache/matplotlib目录中有一个json文件,查看这个文件没有找到安装的YaHei字体,但fc-list 命令看到字体是已经安装好的。我选择的是微软雅黑。解决办法: 到.cache目录中,mv matplotlib matplotllib.bk 或者直接删除这个目录即可。检查了下, 是使用matplotlib 显示标题时使用了中文,而python中的matplotlib 找不到字体。注意,这里显示的不是文件,右键复制到另外一个目录中,会发现是三个文件。
2023-03-30 15:46:45
818
原创 Centos 系统 安装openGauss 数据库操作记录
1. 下载安装包https://opengauss.org/zh/download.html下载完成后上传并解压到一个目录中,/opt/huawei是默认的安装目录,不要把安装包放在安装目录中,如果一定要用不想改名,就只能在安装配置xml文件中修改安装目录位置。吐槽一下: 官网给的连接和说明是下载一个all.tar.gz的文件,里面包含cm、om、tar.bz2还有一个upgrade_sql的文件,但后面安装教程只提到和用到了om。2. 安装环境要求:1) 硬件环境 内存 32G...
2022-05-18 11:21:11
1598
原创 rsync 同步windows 文件到linux踩坑及解决办法
使用cwrsync 将windows 系统下特定目录中的文件及文件夹同步到linux系统时,系统提示找不到文件: rsync: [sender] link_stat "/cygdrive/e/VisualSVNServer/Repositories/*" failed: no such file or directory (2)经过测试,发现问题在于目录中包含有中文子目录(测试发现中文名的文件不影响),解决办法为将*通配符去掉,直接从目录复制到目录。...
2022-04-27 16:53:39
1612
原创 windows openssh 远程免密登录linux
1. windows 安装openssh(略)2. windows 上生成密钥 ssh-keygen一路默认配置下来即可。3. 将.ssh目录中的id_rsa.pub 公钥文件传输到目标linux系统。比如要使用目标linux 中的test 用户免密登录,则将公钥文件传输到/home/test/.ssh目录中,然后执行cat id_rsa.pub >> authorized_keys4. 在windows 系统上尝试登录linuxssh test@X.X...
2022-04-27 15:21:27
3861
原创 centos stream 部署iscsi 服务器给windows 使用
Linux 大部分都支持iscsi服务器,不过都是通过targetcli命令行方式操作, 在加上acl 和chap认证的配置,显得略为繁琐。开源的NAS现在都太重了,并且也没有找到几款比较好用的。freenas 变成了truenas,感觉比较好用一点的openfiler好多年没有新版本了。还是自己动手走起。一、 centos stream 上部署iscsi服务器1. 安装targetcli、targetd yum install -y targetcli targetd 这一...
2021-12-24 10:07:37
961
原创 element plus 表单提交跳转
vue3 + element plus + vue router 在使用表单提交数据验证后跳转页面时,比如从登录页面跳转到home 页面,但home页面总是一闪又回到登录页面。百思不得其解,找了半天bug,原来是提交按钮没有写el-button,而是随手写成了button。 不知道什么原因这个会影响到页面跳转。前端的坑实在是太多了。<!-- 正确写法 --> <el-form-item> <el-button type='primary' @click="s.
2021-08-31 00:13:54
3101
2
原创 element UI 中间内容自动填充满屏
element UI 设置容器布局时候比较方便,但如果设置不好会出现中间内容无法填充满整个屏幕剩余空间的问题,很可能会导致footer组件悬空在屏幕中间位置,不美观。根据网络上找到的资料,主要有如下几个步骤: 1. 首先说明下布局: header 、(aside,main) 、footer。中间aside和main在同一水平位置。<template> <el-container> <el-header> head </el-hea..
2021-08-27 21:33:13
3125
1
原创 vue3 + vite2 配置开发代理
在开发环境中, 前端与后端服务由于在不同端口上,需要使用代理实现通信。首先在vite.config.js 文件中指定代理服务器地址及urlserver:{ host:"0.0.0.0", proxy:{ '/api':{ target:'http://localhost/', changeOrigin:true, rewrite:(path) => path.replace(/^\/api/,'') }
2021-08-19 23:20:43
3020
原创 Sanic 接收前端post 提交的json数据
sanic 在响应post 提交的数据时,分为两种方式:一种是传统的字符串数据,一种是json类型数据。sanic 对两种数据的接收方式有所不同。1. 传统字符串方式 这种方式通过‘a=1$b=2' 的形式传递数据,接收方式也比较简单。@app.post("/")async def index(request): s1 = request.form['username'] s2 = request.form['password'] return await ..
2021-08-19 23:08:40
6248
2
原创 gitlab CE 环境下使用rsync命令实现增量备份
从网络上看到的大部分git 备份都说没有增量备份方式,使用命令做全量备份,还有的先备份到本地,然后再复制到远程,造成磁盘和网络带宽的浪费。https://blog.youkuaiyun.com/liumiaocn/article/details/107936967这个链接提到的增量备份比较复杂,个人比较懒看着就头疼。想到linux 有个rsync 命令可以只传输变化的文件(基于大小和时间戳),简单测试了下,还是可以的(只用于不是特别繁忙,git服务器能够有空闲时间的)。步骤如下:假设A是主服务器,B是备
2021-07-16 17:54:48
1223
原创 websocket 传输json文本是parse方法报错
使用websocket 将json数据推送给前端时,websocket 需要将json数据转化为字符串进行传送,在前端使用javascript 将文本恢复成json对象,一般使用JSON.paser()
2021-06-18 17:25:56
1328
原创 torado websocket 实现数据推送
tornado 官方文档给出了一个聊天室的websocket 案例,需要在客户端发动消息,然后推送给聊天室中的所有人。 从后台定时推送处理后的数据到前端需要稍微改动下。
2021-06-18 15:57:44
2500
原创 sanic cookie
http headers 中可以携带cookie信息,但首次request访问是没有cookie的,服务器根据需要在response 中返回cookie,客户端会根据这个cookie信息设置自己zai'ci,
2021-06-11 09:03:32
297
原创 请求(request)
request 实例包含很多参数。(1) 请求体 body 可以通过request 的json 、body、form 、files 获取从客户端post 提交的数据或文件(2) 上下文 request.ctx 是存储request 相关信息的地方,通常存储服务器端通过某些验证后需要临时存储身份认证信息以及专有变量等内容。 具体内容在中间件部分介绍。@app.middleware('request')async def run_before_handler(request): ...
2021-06-10 17:45:33
549
原创 响应函数 handlers
(1) 响应函数响应函数可以理解为视图函数,对应于一个访问请求。可以是任何一个可调用的程序,但至少有一个request实例作为参数(有请求才会有响应),并返回一个HTTPResponse 实例或者一个执行其他操作的协同程序,说起来可能有些难以理解,实际上是区分了同步和异步的响应函数,同步响应函数直接返回Resonse实例,异步就要返回一个未来才能返回的函数。响应函数就是对请求进行响应,一般这里就是承载业务处理逻辑的地方。实际工作中,可能需要使用基于类的视图进行封装,之后会详细介绍。#req.
2021-06-10 17:43:47
1869
原创 sanic 应用(2)
1. Sanic 应用(1) sanic 实例 app = Sanic("") 实例化sanic(2) 应用上下文 代码不同部分共享数据对象时,sanic 21.3 版本开始引入了应用上下文,之前版本需要将实例属性附加到应用程序上。 app= Sanic("test") app.db = Database() in v21.3: app= Sanic("test") app.ctx.db = Database()(3) app 注册表 当实例...
2021-06-10 17:41:25
673
原创 sanic 笔记 (概览)
一、概述1. sanic 是基于python 3.7 的web服务器和web框架,是一个无阻塞的框架,旨在提高性能。2. 特性 内置极速web server 生产准备就绪 支持ASGI 简单直观的API涉及3. 安装 pip install sanic4. hello world#hello.pyfrom sanic import Sanicfrom sanic.response import textapp = Sanic("hello")@a...
2021-06-10 17:39:39
428
原创 sanic 使用模板
fromsanicimportSanicfromsanic.responseimporttext,html,json,file,stream,file_stream,raw,redirect,empty#response支持上述9种返回类型,其中file类型可以根据文件类型自动识别。#测试file为html时,会按照模板的方式展现。app=Sanic("instance1")app.static('/static','/python/sanic/sta...
2021-06-07 11:18:27
550
原创 redhat server 8.1 安装DB2 V9.7数据库故障
执行./db2setup 时,系统不出现图形界面,一会就回到#命令行模式下了。DB2 d
2021-06-04 15:34:42
676
原创 tornado 异步执行shell命令并返回执行结果
思路:通过tornado框架构建web服务器,通过执行后台命令程序获取监控目标状态或监控结果,根据状态或结果,通过websocket发送信息到前端进行相应的展现。问题:tornadoweb框架是异步处理的,其核心是将事务都放入到ioloop异步循环中。但通常使用python调用shell脚本或者执行的shell命令,以及python打开文件的操作都是同步阻塞模式,无法加入到ioloop中。在下面的连接中提到了如何将shell命令通过异步方式执行并获取执行结果。https://www.cn...
2021-03-10 15:16:16
1153
原创 tornado websocket 笔记
Tornado对异步的支持比较好,与websocket 搭配实现监控类的应用更为简便些。 在tornado的github 上有关于websocket的一个聊天室应用示例。实际代码部分如下:class ChatSocketHandler(tornado.websocket.WebSocketHandler): waiters = set() cache = [] cache_size = 200 def open(self): ChatSocketHa...
2021-03-08 22:02:38
171
原创 keepalived notify_stop 脚本的问题
1. 环境: 操作系统为SUSE 12,keepalived 的版本为当前最新的 2.2.1 ,在suse上通过编译方式安装部署。 configure --prefix=/user/local/keepalived make & make install上述安装步骤会把源码程序中的keepalive.service 复制到/usr/lib/systemd/system/目录中,是把keepalived 注册为系统服务,执行systemctl start keepalived可以启动...
2021-02-25 08:52:37
2223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人