排除Veeam的Error: Failed to open VDDK disk错误

测试新版本的Veeam12的时候,不管增加的是Vcenter还是Esxi,6.7的版本全是正常备份,8.0的版本全部失败,报打开VDDK 磁盘失败错误,经过长时间的探索,逐步对Veeam的备份机制有所了解,先说结论

部署Veeam的ip地址和Esxi8管理ip可通信,但和Esxi8的vmotion的ip不能通信导致,但在Esxi6.7版本及之前不存在这个问题。

推测原因是Esxi7及以后版本改变了数据通信模式,如果没有配置vmotion ip,那么备份时候数据还是走管理ip,但是一旦发现主机配置了vmotion ip,则只从vmotion ip走数据;Esxi6.7及之前的版本是只要管理ip和Veeam的ip是通的,就可以走备份数据。

提供思路,希望能帮助有相同困扰的朋友。

301和302跳转的区别

首先说一下,浏览器里301缓存会多久失效,这是一个极为复杂的问题,目前已知:

IE7, IE8 不会缓存
IE 11 会缓存,时间未知,重启无效
Chrome 会缓存,时间未知,重启无效
Firefox 会缓存,时间未知,重启无效

所以,如果是临时测试使用,那应该用302临时跳转替代301,301是永久重定向,不适合临时。302跳转代码如下:

location / {
        rewrite ^ https://www.china.cn redirect;
}

如果非要使用301跳转,又不想浏览器缓存,那可以使用如下代码:

location / {
        add_header Cache-Control no-cache;
        rewrite ^ https://www.china.cn permanent;
}

 

使用Containerd建立bind应用的几个难点

一、镜像建立脚本需要修改

https://hub.docker.com/r/internetsystemsconsortium/bind9 是启动方法
https://github.com/isc-projects/bind9-docker 里是build方法,点击Dockerfile查看第一行是否有绿勾,如下图

绿勾代表编译通过,如果是红叉,那就等等作者,如果不能等的话,也有其它方法,我们以后再说。

看Dockerfile内容如下

FROM ubuntu:jammy
MAINTAINER BIND 9 Developers <bind9-dev@isc.org>
ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ARG DEB_VERSION=1:9.18.12-1+ubuntu22.04.1+isc+1

# Install add-apt-repository command
RUN apt-get -qqqy update
RUN apt-get -qqqy dist-upgrade
RUN apt-get -qqqy install –no-install-recommends apt-utils software-properties-common dctrl-tools gpg-agent

# Add the BIND 9 APT Repository
RUN add-apt-repository -y ppa:isc/bind

# Install BIND 9
RUN apt-get -qqqy update
RUN apt-get -qqqy dist-upgrade
RUN apt-get -qqqy install bind9=$DEB_VERSION bind9utils=$DEB_VERSION

# Now remove the pkexec that got pulled as dependency to software-properties-common
RUN apt-get –purge -y autoremove policykit-1
RUN mkdir -p /etc/bind && chown root:bind /etc/bind/ && chmod 755 /etc/bind
RUN mkdir -p /var/cache/bind && chown bind:bind /var/cache/bind && chmod 755 /var/cache/bind
RUN mkdir -p /var/lib/bind && chown bind:bind /var/lib/bind && chmod 755 /var/lib/bind
RUN mkdir -p /var/log/bind && chown bind:bind /var/log/bind && chmod 755 /var/log/bind
RUN mkdir -p /run/named && chown bind:bind /run/named && chmod 755 /run/named
VOLUME ["/etc/bind", "/var/cache/bind", "/var/lib/bind", "/var/log"]
EXPOSE 53/udp 53/tcp 953/tcp

CMD ["/usr/sbin/named", "-g", "-c", "/etc/bind/named.conf", "-u", "bind"]

我们需要将最后一行的-g参数改为-f参数,如果服务器用-f参数启动,则named.run会被stderr所代替,severity 按照服务器当前Debug级别记录日志,如果是-g则启动调试模式,输出到显示器上,所以正常工作环境下,不适用-g参数,使用nerdctl重新编译。

nerdctl build -t bind:new -f .

二、目录权限

大家参考,目录内权限递归。需要注意的是配置文件及日志文件均不会自动建立,需要从容器中拷贝或新建。

三、网络

本次使用的机器包含了V4和V6地址,所以没有使用端口映射的方式启动,使用了–network host 模式,直接使用宿主机的网络地址。

在龙蜥8.6上安装Confluence7.19.1

为什么用龙蜥?

最近的CentOS8结束生命周期闹得沸沸扬扬,经过对目前现有国产操作系统总结归纳,龙蜥可做到CentOS8一键升级到龙蜥,且应用稳定性可以保障。但你要说他是挂皮的CentOS,也不尽然,我比较看重它重构CentOS后新增加的一些功能,龙蜥8.6是双内核,RHCK(RHEL Compatible Kernel)和ANCK(OpenAnolis Cloud Kernel),其中ANCK内核有阿里团队重点打造,且经过了阿里各种重大市场活动的检验,最主要的是Cgroup功能,可以防止有BUG的应用不断蚕食系统资源,导致系统崩溃的情况发生。

安装Confluence数据库需关注的重点

安装MySQL或MariaDB数据库不是本篇重点,但这里面务必需要按照Confluence官方文档来设置,这样才能减少踩坑的几率。

具体参照如下文档
https://confluence.atlassian.com/doc/database-setup-for-mysql-128747.html

BIN包安装Confluence7.19.1

说几个重点需要关注的地方
1、采用atlassian-agent方式,把启动写入setenv.sh最为稳妥
2、如果不是一次安装成功的,一定要注意,每次安装BIN包都会新建立一个confluence账户,比如第一次建立一个confluence,第二次就是confluence1,第三次就是confluence2,以此类推,然后我这次碰到的一个诡异的问题就是使用startup.sh启动一切正常,使用start-confluence.sh启动就会报权限错误,根据观察使用startup.sh启动使用root权限,使用start-confluence.sh启动使用的是最后一次安装成功的confluence【1-*】用户权限,但是如果你想系统开机启动confluence,那使用的必然是start-confluence.sh文件,目前可以通过修改user.sh中的启动用户来解决这个问题,但这不是官方解决方式,所以这个东西务必还是一次安装好。
3、新系统不要升级安装,建议新安装一套,然后使用旧系统的备份数据还原即可。

结尾放张图,上线测试中。。。

从Confluence 7.9.0 以下版本升级到 7.11.0 的方法

最近一边做测试,一边把步骤写在了QQ群里,今天有空总结一下:

首先,从confluence 7.9.0 以下版本无法直接升级到 7.11.0,这是因为7.11.0 引进了一个新的RMI端口 8000 (当然因为是跨版本升级,是否7.10版本就引进了,这里不做描述,因为也没有测试过)

其次,从升级程序测试来看,对跨版本升级也不友好,感觉没有经过严谨测试,就把程序放上来了(疫情以后的这几版程序都有这个问题)

所以我们还是新安装一个环境,然后将老环境下的数据迁移到新环境即可。

安装过程如下,使用虚拟机会比较友好

1、虚拟出一台和线上系统一模一样的confluence 7.9.0,IP不同,可访问即可。这样老业务也不用停止。先删除老的7.9.0,再安装新的7.11.0


chmod +x /opt/atlassian/confluence/uninstall
/opt/atlassian/confluence/uninstall
chmod +x atlassian-confluence-7.11.0-x64.bin.bin
./atlassian-confluence-7.11.0-x64.bin

注意安装完成后系统提示是否启动,选择No

2、替换K文件和增加 mysql driver


cd /opt/atlassian/confluence/confluence/WEB-INF/lib
mv atlassian-extras-decoder-v2-3.4.1.jar atlassian-extras-decoder-v2-3.4.1.jar.bak

同时需要上传mysql-connector-java-8.0.22.jar驱动到/opt/atlassian/confluence/confluence/WEB-INF/lib目录下

3、启动新安装的confluence 7.11.0


/opt/atlassian/confluence/bin/startup.sh

4、访问 http://IP:8090 进行安装

这里会报错

解决需要在数据库里增加一个语句


mysql -p
&gt; set global log_bin_trust_function_creators = 1;

然后继续安装

去旧的confluence 7.9.0 里把数据备份出来

完成后进入找到授权码,证明K文件依旧正常有效(K文件仅限研究,拒绝商用)

关于7.11.0的插件

照例无法打开应用市场,可以把插件下载下来使用,用下面这个插件做测试

插件部分到此结束,继续 One file all done。