diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100755 new mode 100644 index a5a29d9f7da2c47591a22c51582ff4ce647cf0d8..e9a388c27727cbfd897410eac7a4660eaa03cb61 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -pnpm lint-staged +pnpm lint-staged \ No newline at end of file diff --git a/app/zh/blog/100644 b/app/zh/blog/100644 new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Widfly 17.0.0 for openEuler\347\247\273\346\244\215\346\241\210\344\276\213.md" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Widfly 17.0.0 for openEuler\347\247\273\346\244\215\346\241\210\344\276\213.md" deleted file mode 100644 index 376e221bf2a46f05a933faa5a3ab3690d1a58523..0000000000000000000000000000000000000000 --- "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Widfly 17.0.0 for openEuler\347\247\273\346\244\215\346\241\210\344\276\213.md" +++ /dev/null @@ -1,201 +0,0 @@ -# Widfly 17.0.0 for openEuler 22.03 LTS移植案例 - - - -## **简介** - -JBoss是一套开源的企业级Java中间件系统,用于实现基于SOA的企业应用和服务,基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的Web容器,一般与Tomcat或Jetty绑定使用。 - - - -## 系统版本 - -openEuler 22.03 LTS - - - -## **选用版本** - -WildFly 17.0.0.Final - - - -## 下载地址 - - [**https://github.com/wildfly/wildfly.git**](https://github.com/wildfly/wildfly.git) - - - -## **安装依赖包** - -``` - yum install -y gcc gcc-c++ openssl-devel java-1.8.0* -``` - -> ![](./images/image3.png) -> ->![](./images/image1.png)**说明** -> -> JDK安装成功后检查以下路径确认是否安装成功。 -> -> ![](./images/image4.png) - - - -## **关闭防火墙** - -> ![](./images/image1.png)**说明** -> ->测试环境下通常会关闭防火墙以避免部分网络因素影响,视实际需求做配置。 - -**步骤1** 停止防火墙。 - -``` - systemctl stop firewalld.service -``` - -**步骤2** 关闭防火墙。 - -``` - systemctl disable firewalld.service -``` - -**步骤3** 查看防火墙状态。 - -``` - systemctl status firewalld.service -``` - - - -## **配置扩展文件描述符** - -**步骤1** 打开limits.conf文件。 - -``` - vi /etc/security/limits.conf -``` - -**步骤2** 在文件中写入以下配置后,保存并退出文件。 - -``` - * soft nofile 102400 - * hard nofile 102400 -``` - -> ![](./images/image1.png)**说明** -> ->\*:表示所有用户; -> ->hard:表示严格的设定,必定不能超过这个设定的数值; -> ->soft:表示警告的设定,可以超过这个设定值,但是若超过则有警告信息。 - -**步骤3** 重启服务器使文件配置生效。 - - - -## **安装Maven-3.8.7** - -**步骤1** 进入"/root"路径,下载maven-3.8.7安装包。 - -> 下载地址: -> -> [**https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.7/binaries/apache-maven-3.8.7-bin.tar.gz**](https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.7/binaries/apache-maven-3.8.7-bin.tar.gz) - -**步骤2** 解压到当前目录下。 - -``` - tar -zxvf apache-maven-3.8.7-bin.tar.gz -``` - -**步骤3** 配置环境变量。 - -- 编辑vi /etc/profile文件。 - -``` - vi /etc/profile -``` - -- 在文件末尾加入以下内容后保存并退出。 - -``` - export M2_HOME=/root/apache-maven-3.8.7 - export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin -``` - -- 生效环境变量。 - -``` - source /etc/profile -``` - -**步骤4** 验证maven版本。 - -``` - mvn -v -``` - -> 出现以下回显则表示安装完成。 -> -> ![](./images/image5.png) - - - - - -## **编译WildFly 17.0.0源码** - -**步骤1** 下载WildFly源码。 - -``` - cd /root - git clone https://github.com/wildfly/wildfly.git -``` - -> ![](./images/image6.png) - -**步骤2** 切换到WildFly 17.0.0版本。 - -``` - cd wildfly - git checkout 17.0.0.Final -``` - -> ![](./images/image7.png) - -**步骤3** 执行编译。 - -> 使用自己的 Maven 安装进行构建,其中构建和执行过程参考[**https://github.com/wildfly/wildfly**](https://github.com/wildfly/wildfly) -> - -``` - mvn install -``` - -编译运行图示1 - -> ![](./images/image8.png) -> -> 编译运行图示2 -> ->![](./images/image9.png) -> ->若显示**BUILD SUCCESS**,则编译通过。 -> -> ![](./images/image1.png)**说明** -> -> 执行安装编译后会生产对应的.jar包,收集相关的.jar包的命令如下,其中wildfly-jar文件中的内容为编译所生成的全部jar包: -> - -``` - cd /root - mkdir wildfly-jar - cd /root/wildfly-jar - find . -name "*.jar" -exec cp -rf {} /root/wildfly-jar/ \; - cd /root - tar -cvjf wildfly-jar.tar.gz wildfly-jar -``` - - - diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image1.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image1.png" deleted file mode 100644 index 04523ba8d653c89d1a2afa33286ff1d867a98ccd..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image1.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image2.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image2.png" deleted file mode 100644 index 36013b1f7f75468a80ca9809fdf0e6cdadc0e62f..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image2.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image3.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image3.png" deleted file mode 100644 index dca2b02c396f90034c0e02ad1427c834bdda8b19..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image3.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image4.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image4.png" deleted file mode 100644 index 8dd305b6e47963a9400d37d1aa3a31962bdbf97a..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image4.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image5.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image5.png" deleted file mode 100644 index 06aa07f7597c0b74e2b921b4af52e983385725f8..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image5.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image6.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image6.png" deleted file mode 100644 index 5d6d2e24e6b9b8efee31ad0b733cbabd44c222bb..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image6.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image7.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image7.png" deleted file mode 100644 index d1352197969c9a7596e13671c216d9ff3dd01db5..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image7.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image8.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image8.png" deleted file mode 100644 index e26219644e7f5b8643102cb70f63a4ba3b1cdfd5..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image8.png" and /dev/null differ diff --git "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image9.png" "b/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image9.png" deleted file mode 100644 index 35ed72755211dd3f49c71d95664448d6b9f98cba..0000000000000000000000000000000000000000 Binary files "a/app/zh/blog/20230201-Widfly-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/images/image9.png" and /dev/null differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Etcd 3.76 for openEuler 22.03 LTS \347\247\273\346\244\215\346\241\210\344\276\213.md" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Etcd 3.76 for openEuler 22.03 LTS \347\247\273\346\244\215\346\241\210\344\276\213.md" new file mode 100644 index 0000000000000000000000000000000000000000..f5ea55719a0fd43e395ff7d651b5c085ce386cca --- /dev/null +++ "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/Etcd 3.76 for openEuler 22.03 LTS \347\247\273\346\244\215\346\241\210\344\276\213.md" @@ -0,0 +1,387 @@ +--- +title: "Etcd-3.76-migrate" +date: 2023-02-09 +category: blog +tags: + - Etcd + - porting Guide +sig: sig-Compatibility-Infra +archives: 2023-02 +author: bald +summary: "详细介绍了Etcd-3.76软件移植到openEuler操作系统的具体操作步骤" + +--- + +# Etcd 3.76 for openEuler 22.03 LTS 移植案例 + +## 介绍 + +Etcd是一个高度一致的分布式键值存储,它提供了一种可靠的方式来存储需 要由分布式 系统或机器集群访问的数据。它可以优雅地处理网络分区期间的领导者选举,即使在领导 者节点中也可以容忍机器故障。 + +开发语言:C++ + +一句话描述:共享配置和服务发现的分布式存储。 + +建议的版本:Etcd-3.76 + +## 环境要求 + +### 硬件要求 + +| 项目 | 说明 | +| ---------- | ------------------------------------------- | +| 服务器名称 | TaiShan 200服务器(型号2280) | +| 处理器 | Kunpeng 920 5250 | +| 内存大小 | 32GB 2666MHz * 16 | +| 网卡 | 1*10GE | +| 硬盘 | OS:900GB SAS * 2 DATA:3.2T ES3000 V3 * 1 | + + + +### 操作系统和软件要求 + +| 项目 | 版本 | +| ------------- | ----------------------- | +| **OpenEuler** | **OpenEuler 22.03 LTS** | + + + +## 源码编译安装和卸载 + +[ 关闭防火墙](#关闭防火墙) + +[安装依赖包](#_安装依赖包) + +[安装go环境](#_安装go环境) + +[源码编译安装](#源码编译安装) + +[验证Etcd](#_验证Etcd) + +[源码编译安装方式卸载](#源码编译安装卸载) + +### 关闭防火墙 + +说明:测试环境下通常会关闭防火墙以避免部分网络因素影响,视实际需求做配置。 + +- 停止防火墙。 + +``` +systemctl stop firewalld.service +``` + +- 关闭防火墙。 + +``` +systemctl disable firewalld.service +``` + +- 查看防火墙。 + +``` +systemctl status firewalld.service +``` + +### 安装依赖包 + +- 配置yum源及安装基础依赖包。 + +``` +yum -y install git gcc gcc-c++ vim* +``` + +### 安装go环境 + +- 下载go源码,本例将源码报放在/home路径。 + +``` +wget https://dl.google.com/go/go1.17.7.linux-arm64.tar.gz +``` + +- 解压压缩包。 + +``` +tar -zxvf go1.17.7.linux-arm64.tar.gz -C /usr/local +``` + +- 配置环境变量。 + +``` +vim /etc/profile +``` + +在/etc/profile文件末尾添加以下配置,输入 :wq保存 + +``` +export GOROOT=/usr/local/go +export PATH=$PATH:$GOROOT/bin +``` + +- 使环境变量生效。 + +``` +source /etc/profile +``` + +- 查看安装路径。 + +``` +ls /usr/local/go +``` + +![](./media/image2.png) + +- 查看版本号。 + +``` +go version +``` + +![](./media/image3.png) + +### 源码编译安装 + +- 下载etcd源码,本例将源码报放在/home路径。 + +``` +wget https://codeload.github.com/etcd-io/etcd/tar.gz/refs/tags/v3.1.20 +mv v3.1.20 etcd-3.1.20.tar.gz +``` + +- 解压文件。 + +``` +tar -zxvf etcd-3.1.20.tar.gz +``` + +- 配置环境变量。 + +``` +vim /etc/profile +``` + +在/etc/profile文件末尾加入以下配置,输入:wq保存,因为etcd默认使用V2版本,这里需要V3版本的API。 + +``` +export ETCDCTL_API=3 +export ETCD_UNSUPPORTED_ARCH=arm64 +``` + +- 使环境变量生效。 + +``` +source /etc/profile +``` + +- 执行编译。 + +``` +cd etcd-3.1.20 +./build +``` + +![](./media/image4.png) + +编译过程中如出现报错:请参考[Not a git repository报错](#_Not a git repository 报错)和[no required module provides package报错](#_no required module provides package报错)和[Needed a single revision报错](#_Needed a single revision报错)。 + +- 查找安装路径,编译成功后,会在etcd-3.1.20/bin目录生成两个可执行文件etcd和etcdctl。 + + ![](./media/image5.png) + +- 修改安装路径。将etcd-3.1.20文件夹的bin目录及etcd.conf.yml.sample文件,放到/usr/loca/etcd目录下,并查看路径。 + +``` +mkdir -p /usr/local/etcd/conf +cp -r /home/etcd-3.1.20/bin /usr/local/etcd +cp -r /home/etcd-3.1.20/etcd.conf.yml.sample /usr/local/etcd/conf/etcd.conf +ls /usr/local/etcd +``` + +![](./media/image6.png) + +### 验证Etcd + +- 启动Etcd。 + + 前台运行: + +``` +cd /usr/local/etcd/bin +./etcd +``` + +![](./media/image7.png) + +- 后台运行: + + +``` +cd /usr/local/etcd/bin +nohup ./etcd >./nohup.out 2>&1 & +``` + +![](./media/image8.png) + +- 验证插入数据。 + +``` +./etcdctl put key "etcd" +``` + +![](./media/image9.png) + +- 删除数据。 + +``` +./etcdctl del key +``` + +![](./media/image10.png) + +- 查找数据。 + +``` +./etcdctl get key +``` + +![](./media/image11.png) + +- 更改数据。更改命令用put即可。 + +``` +./etcdctl put key "world" +``` + +![](./media/image12.png) + +- 退出数据。 + + 前台运行退出: + +``` +Ctrl+c +``` + +后台运行退出:查找etcd进程号结束进程,或者直接结束etcd进程。 + +``` +ps -ef | grep etcd +kill -9 197152 +``` + +或者: + +``` +pkill -9 etcd +``` + +![](./media/image13.png) + +![](./media/image14.png) + +### 卸载 + +- 卸载Etcd,如果正在运行,直接停止进程。 + +``` +pkill -9 etcd +``` + +![](./media/image15.png) + +- 删除目录。源码编译安装只是生成对应的文件,所以直接删除对应的目录即可。 + +``` +cd /usr/local +rm -rf etcd/ +ls /usr/local/etcd +``` + +![](./media/image16.png) + + + +## 故障排除 + +### Not a git repository 报错 + +- 问题现象描述 + + +​ 编译过程中报错Not a git repository:提示不是git仓库。 + +- 关键过程、根本原因分析 + + +​ git未初始化。 + +- 结论、解决方案及效果 + + +通过初始化git,再重新编译。 + +``` +git init +./build +``` + +### no required module provides package报错 + +- 问题现象描述 + + +编译过程中报错:no required module provides package github.com/coreos/etcd/cmd/etcd: go.mod file not found + +![](./media/image17.png) + +- 关键过程、根本原因分析 + + +GO111MODULE模块未打开。 + +- 结论、解决方案及效果 + + +执行命令: + +``` +go env -w GO111MODULE=auto +``` + +### Needed a single revision报错 + +- 问题现象描述 + + +编译过程中报错fatal: Needed a single revision:提示需要校对。 + +- 关键过程、根本原因分析 + + +etcd在编译过程中会将本地代码与远程代码进行比较(校对),执行build时脚本会停止。 + +- 结论、解决方案及效果 + + +修改build脚本,将第9-12行代码注释掉,按:wq保存退出。 + +``` +cd etcd-3.1.20 +vim build +``` + +![](./media/image18.png) + +3. 重新执行编译。 + +``` +./build +``` + +## 修订记录 + +| 发布日期 | 修订记录 | +| -------- | -------------- | +| 2023-2-9 | 第一次正式发布 | + +----------------------------------------------------------------------- diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image10.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image10.png" new file mode 100644 index 0000000000000000000000000000000000000000..b88b8d7e8af8262b66a5e477b783fb5f892afa14 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image10.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image11.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image11.png" new file mode 100644 index 0000000000000000000000000000000000000000..59af66f9be5d57c219b970e2c1af922c29c0abe1 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image11.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image12.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image12.png" new file mode 100644 index 0000000000000000000000000000000000000000..77819d44c6165f12e4dfd7703f7d686260977c87 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image12.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image13.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image13.png" new file mode 100644 index 0000000000000000000000000000000000000000..4fe1303515b42fa1ff0f95485309d1347afcc7cc Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image13.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image14.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image14.png" new file mode 100644 index 0000000000000000000000000000000000000000..f5fdcabff79517497f953de43cbc7fc2c199ac18 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image14.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image15.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image15.png" new file mode 100644 index 0000000000000000000000000000000000000000..9856ba816646287aa070089c290fafb3e8bdc958 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image15.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image16.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image16.png" new file mode 100644 index 0000000000000000000000000000000000000000..5c666b053cfb5752474b29651cdf07c19cdfc568 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image16.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image17.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image17.png" new file mode 100644 index 0000000000000000000000000000000000000000..371c03d032e80537385430376e665e238679b5b2 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image17.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image18.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image18.png" new file mode 100644 index 0000000000000000000000000000000000000000..279c7345e38761191b815ff85350956083b550bb Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image18.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image19.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image19.png" new file mode 100644 index 0000000000000000000000000000000000000000..5d92333bb74f7fbedff84b000ec0246fa9b34338 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image19.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image2.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image2.png" new file mode 100644 index 0000000000000000000000000000000000000000..a09cd4cd9593e38f642e4e4f80cad625cdab732c Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image2.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image20.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image20.png" new file mode 100644 index 0000000000000000000000000000000000000000..b88b8d7e8af8262b66a5e477b783fb5f892afa14 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image20.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image21.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image21.png" new file mode 100644 index 0000000000000000000000000000000000000000..59af66f9be5d57c219b970e2c1af922c29c0abe1 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image21.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image22.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image22.png" new file mode 100644 index 0000000000000000000000000000000000000000..77819d44c6165f12e4dfd7703f7d686260977c87 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image22.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image23.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image23.png" new file mode 100644 index 0000000000000000000000000000000000000000..4fe1303515b42fa1ff0f95485309d1347afcc7cc Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image23.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image24.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image24.png" new file mode 100644 index 0000000000000000000000000000000000000000..f5fdcabff79517497f953de43cbc7fc2c199ac18 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image24.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image25.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image25.png" new file mode 100644 index 0000000000000000000000000000000000000000..9856ba816646287aa070089c290fafb3e8bdc958 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image25.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image26.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image26.png" new file mode 100644 index 0000000000000000000000000000000000000000..5c666b053cfb5752474b29651cdf07c19cdfc568 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image26.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image27.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image27.png" new file mode 100644 index 0000000000000000000000000000000000000000..371c03d032e80537385430376e665e238679b5b2 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image27.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image28.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image28.png" new file mode 100644 index 0000000000000000000000000000000000000000..279c7345e38761191b815ff85350956083b550bb Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image28.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image3.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image3.png" new file mode 100644 index 0000000000000000000000000000000000000000..cfed407220cbe8adface40d4c94d5062b2594a3f Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image3.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image4.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image4.png" new file mode 100644 index 0000000000000000000000000000000000000000..8c6b20c9cc2af1de3f848c8e35f445909c545692 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image4.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image5.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image5.png" new file mode 100644 index 0000000000000000000000000000000000000000..e05ba58a69a0066a5d605c10586ea8c9f803c914 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image5.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image6.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image6.png" new file mode 100644 index 0000000000000000000000000000000000000000..b2226408c01b167d1a16081769d9b79a18744153 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image6.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image7.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image7.png" new file mode 100644 index 0000000000000000000000000000000000000000..4fc7b6cf898adcb5d301b0ed54dbe3cca4a7ecf6 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image7.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image8.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image8.png" new file mode 100644 index 0000000000000000000000000000000000000000..cc1d1ed0bd9c818713cc495779dcf1eff3a11570 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image8.png" differ diff --git "a/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image9.png" "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image9.png" new file mode 100644 index 0000000000000000000000000000000000000000..5d92333bb74f7fbedff84b000ec0246fa9b34338 Binary files /dev/null and "b/app/zh/blog/20230208-Etcd-openEuler\347\247\273\346\244\215\346\241\210\344\276\213/media/image9.png" differ diff --git a/app/zh/blog/RocksDB-xt b/app/zh/blog/RocksDB-xt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/app/zh/blog/fastdb b/app/zh/blog/fastdb new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/app/zh/blog/master b/app/zh/blog/master new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391