• [分布式存储] 智能写Cache 特性指南(CentOS 7.6)
    介绍:智能写Cache(Smart Write Cache)包含Bcache内核补丁以及相关配套的工具两部分。智能写Cache通过IO直通、Bcache QoS策略控制、Writeback策略控制以及GC策略控制来提升Bcache性能,最终达到提升Ceph集群性能的目的。安全加固声明建议关注Ceph官网和Ceph官方Github上的漏洞信息,按照需求及时地进行漏洞修复。兼容规格:硬件兼容列表兼容项目兼容性规格描述CPU型号华为鲲鹏916处理器华为鲲鹏920处理器服务器型号TaiShan 100系列服务器TaiShan 200服务器(型号2280)TaiShan 200服务器(型号5280)软件兼容列表软件名称软件版本OSCentOS 7.6 for aarch64内核版本4.14.0-115.10.1.el7aCephCeph 14.2.x适用场景智能写Cache是在使用Bcache设备做为Ceph OSD的存储场景下,对其中的Ceph IO流程进行了优化,仅对采用BlueStore存储引擎的OSD有效,考虑到实际应用中Ceph集群中OSD的增加与修改操作,工具需要获取集群内的OSD信息,因此需要保证OSD部署路径使用官方默认路径“/var/lib/ceph/osd”,如果采用其他路径则不会进行优化。说明:Ceph存储场景介绍如下:均衡型:集群采用SSD盘和HDD盘混合部署OSD,使用SSD盘存储OSD的元数据(DB)、日志数据(WAL),使用HDD盘存储真实数据(Data)。全闪存:集群采用全SSD盘部署OSD,OSD的Data、DB、WAL一起存储在SSD盘中。冷存储:集群采用全HDD盘部署OSD,OSD的Data、DB、WAL一起存储在HDD盘中。Bcache:将SSD与HDD绑定为一个Bcache分区,SSD做为HDD的缓存,集群采用Bcache分区部署OSD,OSD的Data存储在Bcache分区中,DB和WAL存放在单独的NVMe分区。目前智能写Cache只对Bcache场景有效。CentOS 7.6 for aarch64的内核默认为64K PAGESIZE,智能写Cache工具需要运行在4K PAGESIZE环境下。为方便使用,本文提供两种方式供选择:环境为64K PAGESIZE,需要重新编译替换整个内核,可以选择内核与bcache同时编译安装的方式,请参见“内核编译与安装”。环境已为4K PAGESIZE(通过“getconf PAGESIZE”查询),仅需要安装替换bcache.ko时,可以选择单独编译bcache.ko安装的方式,请参见“Bcache编译与安装”使用指导1. 安装Bcache    1)内核编译与安装:https://support.huaweicloud.com/fg-kunpengsdss/kunpengswc_20_0006.html    2)Bcache编译与安装: https://support.huaweicloud.com/fg-kunpengsdss/kunpengswc_20_0007.html2. 安装智能写cache工具     https://support.huaweicloud.com/fg-kunpengsdss/kunpengswc_20_0008.html3. 安装Bcache-tools工具     https://support.huaweicloud.com/fg-kunpengsdss/kunpengswc_20_0009.html4. Ceph使能智能写cache    https://support.huaweicloud.com/fg-kunpengsdss/kunpengswc_20_0010.html
  • [HPC] QE 6.8 移植指南(CentOS 8.2)
    1.1 介绍QUANTUM ESPRESSO是一种用于电子结构计算和材料建模的abinitio量子化学方法的软件套件,在GNU通用公共许可证下免费分发。它基于密度泛函理论,平面波基组和赝势(包括范数守恒和超软)。该程序主要在Fortran-90中编写,其中一些部分在C或Fortran-77中,是根据不同的独立开发的核心软件包的合并和重新设计以及一组旨在互操作的软件包构建的。基本软件包包括Pwscf,它解决了自洽的Kohn和Sham方程,获得了周期性实体,CP实现了Car-Parrinello分子动力学,PostProc实现了数据分析和绘图。关于附加封装,值得注意的是指出赝势生成的原子,PHonon封装,它实现了密度泛函扰动理论(DFPT),用于计算能量相对于原子位移和NEB的二阶和三阶导数。关于QUANTUM ESPRESSO的更多信息请访问QUANTUM ESPRESSO官网。语言:C++/Fortran。一句话描述:可扩展的计算化学工具。开源协议:GPL 2.0。建议的版本建议使用的版本为“QE 6.8”。1.2 环境要求硬件要求硬件要求如表2-1所示。硬件要求项目说明CPU鲲鹏920处理器。GPUNVIDIA Tesla V100。 软件要求软件要求如表2-2所示。软件要求项目版本下载地址QUANTUM ESPRESSO6.8https://github.com/QEF/q-e/archive/refs/tags/qe-6.8.tar.gzOpenBLAS0.3.6https://github.com/xianyi/OpenBLAS/archive/refs/tags/v0.3.6.tar.gzHyper MPI1.1.1https://support.huaweicloud.com/usermanual-kunpenghpcs/userg_huaweimpi_0010.htmlNVIDIA CUDA11.4https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.runNVIDIA HPC SDK21.9https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_aarch64_cuda_11.4.tar.gz 操作系统要求操作系统要求如表2-3所示。操作系统要求项目版本下载地址CentOS8.2https://vault.centos.org/8.2.2004/isos/aarch64/CentOS-8.2.2004-aarch64-dvd1.isoKernel4.18.0-193https://vault.centos.org/8.2.2004/BaseOS/Source/SPackages/kernel-4.18.0-193.el8.src.rpm 1.3 移植规划数据本章节给出QE软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。移植规划数据序号软件安装规划路径用途说明1-基础环境搭建中的各安装包安装路径。参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章 节。2/path/to/qeQUANTUM ESPRESSO的安装规划路径。这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。3/usr/local/cuda-11.4NVIDIA CUDA的安装规划路径。4/path/to/openblasOpenBLAS的安装规划路径。5/opt/nvidia/hpc_sdkNVIDIA HPC SDK的安装规划路径。6/path/to/CASEQUANTUM ESPRESSO的算例文件存放规划路径。 1.4 配置编译环境前提条件使用SFTP工具将各安装包上传至服务器对应目录下。配置流程配置流程序号配置项说明1基础环境搭建参考《HPC解决方案 基础环境搭建指导书》中“集群场景环境搭建”章节。2禁用nouveau驱动参考2.4.1 禁用nouveau驱动。3安装NVIDIA CUDA参考2.4.2 安装NVIDIA CUDA组件。4安装Hyper MPI参考2.4.3 安装Hyper MPI。5安装NVIDIA HPC SDK参考2.4.4 安装NVIDIA HPC SDK。6安装OpenBLAS参考2.4.5 安装OpenBLAS。 1.4.1 禁用nouveau驱动操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令查看nouveau驱动是否已禁用。                    lsmod |grep nouveau若有回显信息,表示nouveau驱动未禁用,则执行步骤3。若无回显信息,表示nouveau驱动已禁用,则结束操作。步骤 3 执行以下命令禁用nouveau驱动。新建文件“disable-nouveau.conf”。                    vi /etc/modprobe.d/disable-nouveau.conf按“i”进入编辑模式,添加如下内容。                    blacklist nouveau                    options nouveau modeset=0按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。步骤 4 执行以下命令备份并生成新的“initramfs”文件                    cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img                    dracut -f /boot/initramfs-$(uname -r).img $(uname -r)步骤 5 执行以下命令重启机器。                    reboot----结束1.4.2 安装NVIDIA CUDA组件操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令确认nouveau驱动是否已禁用。                    lsmod |grep nouveau若有回显信息,表示nouveau驱动未禁用,则执行步骤3~步骤5。若无回显信息,表示nouveau驱动已禁用,则结束操作。步骤 3 执行以下命令安装NVIDIA CUDA组件。                    wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run                    sudo shcuda_11.4.0_470.42.01_linux_sbsa.run步骤 4 执行以下命令配置环境变量。                    export PATH=/usr/local/cuda-11.4/bin:$PATH                    export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH步骤 5 执行以下命令进行验证。                    nvcc --version若返回结果已包含NVIDIA CUDA组件版本信息,说明安装成功。----结束1.4.3 安装Hyper MPI操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令安装HUCX源码包和XUCG源码包。                    wget -c https://github.com/kunpengcompute/hucx/archive/refs/heads/huawei.zip -O hucx-huawei.zip                    wget -c https://github.com/kunpengcompute/xucg/archive/refs/heads/huawei.zip -O xucg-huawei.zip步骤 3 执行以下命令解压HUCX源码包和XUCG源码包。                    unzip hucx-huawei.zip                    unzip xucg-huawei.zip步骤 4 执行以下命令将XUCG源码包中的内容复制到HUCX源码包中的“src/ucg”目录下。                    cp -r xucg-huawei/* hucx-huawei/src/ucg/步骤 5 执行以下命令进入hucx-huawei目录。                    cd hucx-huawei步骤 6 执行以下命令设置环境变量。                    export SEC_CFLAGS="-Wno-error=deprecated-declarations -DHAVE___CLEAR_CACHE=1 -Wno-error=asm-operand-widths -Wno-error=implicit-int-float-conversion -Wno-error=format -Wno-error=tautological-pointer-compare"步骤 7 执行以下命令创建HUCX安装目录。                    mkdir -p /path/to/ucx步骤 8 执行以下命令安装HUCX。                    ./autogen.sh                    ./contrib/configure-opt --prefix=/path/to/ucx CFLAGS="$SEC_CFLAGS" CXXFLAGS="$SEC_CFLAGS"                    make -j32                    make install步骤 9 执行以下命令获取Hyper MPI源码包。                    wget -c https://github.com/kunpengcompute/hmpi/archive/refs/heads/huawei.zip -O hmpi-huawei.zip步骤 10 执行以下命令解压Hyper MPI源码包。                    unzip hmpi-huawei.zip步骤 11 执行以下命令进入hmpi-huawei目录。                    cd hmpi-huawei步骤 12 执行以下命令安装Hyper MPI。                    ./autogen.pl                    ./configure --prefix=/path/to/ompi --with-platform=contrib/platform/mellanox/optimized --enable-mpi1-compatibility --with-ucx=/path/to/ucx                    make -j16                    make install步骤 13 执行以下命令配置环境变量。                    export PATH=/path/to/ompi/bin:/path/to/ucx/bin:$PATH                    export LD_LIBRARY_PATH=/path/to/ompi/lib:/path/to/ucx/lib:$LD_LIBRARY_PATH                    export OPAL_PREFIX=/path/to/ompi/                    export INCLUDE=/path/to/ompi:$INCLUDE----结束1.4.4 安装NVIDIA HPC SDK操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令获取毕昇编译器软件包。                    wget https://developer.download.nvidia.com/hpc-sdk/21.9/nvhpc_2021_219_Linux_aarch64_cuda_11.4.tar.gz步骤 3 执行以下命令创建毕昇编译器安装目录(这里以/opt/compiler为例)。                    mkdir -p /opt/compiler步骤 4 执行以下命令将毕昇编译器压缩包拷贝到安装目录下。                    cp –r nvhpc_2021_219_Linux_aarch64_cuda_11.4 /opt/compiler步骤 5 执行以下命令进入压缩包目录。                    cd /opt/compiler步骤 6 执行以下命令解压缩软件包。                    tar -zxvf nvhpc_2021_219_Linux_aarch64_cuda_11.4.tar.gz步骤 7 执行以下命令解压目录。                    cd nvhpc_2021_219_Linux_aarch64_cuda_11.4/步骤 8 执行以下命令进行安装。                    ./install按“Enter”键确认安装位置,默认为“/opt/nvidia/hpc_sdk”,再按“1”选择单机安装,安装程序会自行找到之前安装的“cuda toolkit”,安装完成后按“Enter”键结束。步骤 9 执行以下命令配置NVIDIA HPC SDK的环境变量。                    module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/21.9步骤 10 执行以下命令进行验证。                    pgcc --version若返回结果已包含“PGI Compilers and Tools”字样,说明安装成功。----结束1.4.5 安装OpenBLAS操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令解压OpenBLAS安装包。                    tar -zxvf OpenBLAS-0.3.6.tar.gz步骤 3 执行以下命令进入解压后的目录。                    cd OpenBLAS-0.3.6步骤 4 执行以下命令编译安装OpenBLAS。                    make                    make PREFIX=/path/to/OPENBLAS install步骤 5 执行以下命令设置OpenBLAS的环境变量。                    export LD_LIBRARY_PATH=/path/to/OPENBLAS/lib:$LD_LIBRARY_PATH----结束1.5 获取源码操作步骤步骤 1 下载QUANTUM ESPRESSO安装包。下载地址:https://github.com/QEF/q-e/releases/tag/qe-6.8步骤 2 使用SFTP工具将QUANTUM ESPRESSO安装包上传至服务器“/path/to/qe”目录。----结束1.6 编译和安装操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令进入主程序安装目录。                    cd /path/to/qe步骤 3 执行以下命令解压安装包。                    tar -zxvf q-e-qe-6.8.tar步骤 4 执行以下命令进入解压后路径。                    cd q-e-qe-6.8/步骤 5 执行以下命令开始编译。                    ./configure --with-cuda=yes --with-cuda-runtime=11.4 --with-cuda-cc=80  --enable-openmp --with-scalapack=no“--with-cuda-cc=80”请根据当前机器的显卡架构进行修改,此处测试机器显卡是v100。                    make -j32 pwall若编译机器无法联网,需下载“devicexlib-master.tar.gz”包,并上传至编译机器,编译完成后执行make pp -j32,具体命令如下:                    mv devicexlib-master.tar.gz /path/to/qe-gpu-6.7/external devicexlib.tar.gz                    tar xzf devicexlib.tar.gz --strip-components=1                    export F90FLAGS="-FAST -mCACHE_align -Mpreprocess -Mlarge_arrays"                    ./configure FC=pgf90 CC=pgcc --with-cuda=no --with-cuda-cc= --with-cuda-runtime= --disable-parallel --enable-cuda-env-check=no                    make pp -j32若出现类似如下错误:是由于链接库配置不对,需要更改“inc”文件。   打开“inc”文件。                    vi make.inc按“i”进入编辑模式,在如下位置增加“LD_LIBS = -lcurand”。按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。步骤 6 执行以下命令查看是否生成可执行文件。                    ll /path/to/qe-gpu-6.7/bin/pw.x回显信息中包含“pw.x”文件,表示已生成可执行文件。步骤 7 执行以下命令设置环境变量。                    export PATH=/path/to/qe/bin/:$PATH----结束1.7 运行和验证操作步骤步骤 1 使用PuTTY工具,以root用户登录服务器。步骤 2 执行以下命令进入测试目录。                    cd /path/to/CASE步骤 3 执行以下命令下载测试算例,使用SFTP工具将测试算例上传至服务器“/path/to/CASE”目录。                    wget https://github.com/QEF/benchmarks/archive/refs/tags/bench0.0.tar.gz步骤 4 执行以下命令解压测试算例包,并将需要的文件拷贝到“/path/to/CASE”目录。                    tar xvf benchmarks-bench0.0.tar.gz                    cp benchmarks-master/AUSURF112/* ./步骤 5 执行以下命令运行QE程序。                    mpirun --allow-run-as-root -np 2 -x OMP_NUM_THREADS=1 --mca btl ^openib pw.x -input ./ausurf.in 2>&1 | tee -a qe.log“-np”表示测试使用的总进程数,这里写2是测试机器有2张显卡。“-x OMP_NUM_THREADS=1”表示指定每个进程的线程数为1。需要查看“qe.log”日志中的“WALL”数值,单位是“s”,数值越高性能越低,输出的结果如下图所示。----结束
  • [HPC] fastp 移植指南(CentOS 7.6)
    1 介绍fastp是一种工具,旨在为FastQ文件提供快速的多合一预处理。该工具是用C ++开发的,支持多线程以提供高性能。关于fastp的更多信息请访问GitHub相关页面。语言:C/C++一句话描述:超快速的多合一FASTQ预处理器。开源协议:MIT License建议的版本建议使用版本为“fastp 0.20.1”。2 环境要求硬件要求硬件要求如表2-1所示。表2-1 硬件要求项目说明CPUKunpeng 920 软件要求软件要求如表2-2所示。表2-2 软件要求项目版本下载地址fastp0.20.1https://github.com/OpenGene/fastp/archive/v0.20.1.tar.gz测试算例1ERR1044518_1.fastqftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR104/008/ERR1044518/ERR1044518_1.fastq.gz测试算例2ERR1044518_2.fastqftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR104/008/ERR1044518/ERR1044518_2.fastq.gz 操作系统要求操作系统要求如表2-3所示。表2-3 操作系统要求项目版本下载地址CentOS7.6https://www.centos.org/download/Kernel4.14.0-115.el7a.0.1https://www.centos.org/download/3 移植规划数据本章节给出fastp软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。表3-1 移植规划数据序号软件安装规划路径用途说明1-基础环境搭建中的各安装包安装路径。参考《HPC解决方案 基础环境搭建指南》中“安装规划数据”章节。2/path/to/FASTPfastp的安装规划路径。这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。4 配置编译环境前提条件使用SFTP工具将各安装包上传至服务器对应目录下。配置流程表4-1 配置流程序号配置项说明1基础环境搭建参考《HPC解决方案 基础环境搭建指南》中“集群场景环境搭建”章节。5 获取源码操作步骤步骤 1    下载fastp源码包“fastp-0.20.1.tar.gz”。下载地址:https://github.com/OpenGene/fastp/archive/v0.20.1.tar.gz步骤 2    使用SFTP工具将下载好的软件包上传至服务器“/path/to/FASTP”目录。----结束6 编译和安装操作步骤步骤 1    使用PuTTY工具,以root用户登录服务器。步骤 2    执行以下命令,解压fastp安装包。tar -xvf fastp-0.20.1.tar.gz步骤 3    执行以下命令,进入解压后的目录。cd fastp-0.20.1步骤 4    执行以下命令,编译安装。make -j 16 步骤 5    执行以下命令,设置环境变量。export PATH=/path/to/FASTP/fastp-0.20.1:$PATH----结束7 运行和验证操作步骤步骤 1    使用PuTTY工具,以root用户登录服务器。步骤 2    执行以下命令进入算例目录。cd /path/to/FASTP/testdata步骤 3    执行以下命令解压算例文件。gzip -d ERR1044518_1.fastq.gzgzip -d ERR1044518_2.fastq.gz步骤 4    执行以下命令,运行算例。{ time fastp -i ERR1044518_1.fastq -I ERR1044518_2.fastq -w 16 ; } 2>&1 |tee fastp.log运行完成后,将回显以下信息:    Duplication rate: 0.581538%    Insert size peak (evaluated by paired-end reads): 169    JSON report: fastp.json    HTML report: fastp.html说明:    fastp支持多线程运行,-w指定线程数,但最多使用16个线程。运行完成后会生成fast.json和fast.html两份报告,可以通过-j和-h参数分别指定两个文件的路径和名称。更多参数信息可以使用fastp --help命令查看。----结束8 更多资源获取更多资源,请访问fastp的GitHub页面:https://github.com/OpenGene/fastp。
  • [技术干货] Seaweedfs环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目  录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙 - 3.2 修改SELINUX为disabled(可选) - 3.3 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 Yum安装依赖 - 4.2 安装Golang - 4.3 预编译包安装 - 4.4 dlv编译安装 - 4.5 seaweedfs编译安装 5 软件运行 - 5.1 运行测试 6 其他1 软件介绍SeaweedFS 是简单,高伸缩性的分布式文件系统,包含两部分:存储数十亿的文件;快速为文件服务。SeaweedFS 作为支持全 POSIX 文件系统语义替代,Seaweed-FS 选择仅实现 key-file 的映射,类似 "NoSQL",也可以说是 "NoFS"。 2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)   软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。go1.14.1见4.2章节  3 系统配置3.1 关闭防火墙# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache4 软件安装4.1 Yum安装依赖# 步骤 1 安装相关依赖。 yum install -y wget git gcc gcc-c++ make cmake4.2 安装Golang# 步骤 1 下载并解压golang。 # /home/go 为自定义的软件包安装位置(GOPATH),修改需对应修改环境变量信息 # /usr/local 为GOROOT的地址,可根据实际情况修改 mkdir /home/go wget https://studygolang.com/dl/golang/go1.14.1.linux-arm64.tar.gz tar -zxvf go1.14.1.linux-arm64.tar.gz -C /usr/local # 步骤 2 配置go环境变量。 vi /etc/profile.d/golang.sh export GOROOT=/usr/local/go export GOPATH=/home/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH export GOPROXY=https://goproxy.io # 配置代理,加速go get,如不需要,请删除 # 步骤 3 使环境变量生效。 source /etc/profile # 步骤 4 验证版本。 go versionseaweedfs安装有两种方式,一种是使用官方提供的预编译包直接部署使用,详见4.3;另一种是源码编译安装,详见4.4~4.54.3 预编译包安装# 步骤 1 下载并解压官方的预编译包。 wget https://github.com/chrislusf/seaweedfs/releases/download/2.16/linux_arm64.tar.gz tar –zxvf linux_arm64.tar.gz ls -l# 步骤 2 配置环境变量。 # 可选,也可以直接运行weed echo 'export PATH=/home/seaweedfs:$PATH' > /etc/profile.d/seaweedfs.sh source /etc/profile4.4 dlv编译安装# 步骤 1 下载源码。 mkdir -p $GOPATH/src && cd $GOPATH/src git clone https://github.com/derekparker/delve.git # 步骤 2 编译安装。 cd delve/cmd/dlv go build && go install4.5 seaweedfs编译安装# 步骤 1 下载源码。 git clone https://github.com/chrislusf/seaweedfs.git cd seaweedfs git checkout –b 2.16 2.16 # 步骤 2 编译安装。 make && make install5 软件运行5.1 运行测试# 步骤 1 创建文件夹 mkdir –r /home/sea/data mkdir –r /home/sea/vol/vol1 mkdir –r /home/sea/vol/vol2 mkdir –r /home/sea/vol/vol3 mkdir –r /home/sea/logs # 步骤 2 启动服务 nohup weed master -mdir=/home/sea/data -port=9333 -defaultReplication="001" -ip="172.16.20.71" &>> /home/sea/logs/master.log &6 其他参考文档:https://github.com/chrislusf/seaweedfs#quick-start              
  • [技术干货] Yasm环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目  录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 依赖安装安装 - 4.2 Yasm编译安装 - 5 软件运行 - 5.1 运行测试 - 6 其他1 软件介绍Yasm是一个完全重写的NASM汇编。接受NASM和气体汇编语法,产出二进制, ELF32 , ELF64 , COFF , Mach - O的( 32和64 ) , RDOFF2 ,的Win32和Win64对象的格式,并生成STABS 调试信息的来源,DWARF 2 ,CodeView 8格式。 2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)   软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Gcc4.8.5Yum源安装 Make 3.82Yum源安装  3 系统配置3.1 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache 4 软件安装4.1 依赖安装安装# 步骤 1 Yum源安装依赖。 yum install –y make gcc-c++ gcc4.2 Yasm编译安装# 步骤 1 下载并解压yasm-1.3.0。 wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar –zxvf yasm-1.3.0.tar.gz && cd yasm-1.3.0 # 步骤 2 修改Makefile文件。 sed -i 's#) ytasm.*#)#' Makefile.in # 步骤 3 配置编译选项。 ./configure # 步骤 4 编译安装。 make -j96 && make install5 软件运行5.1 运行测试# 步骤 1 运行自带的测试套 make check6 其他参考文档:http://yasm.tortall.net/Guide.html              
  • [技术干货] ShengBTE环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目  录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 配置本地yum源(可选) - 4 软件编译 - 4.1 安装Cmake - 4.2 安装openmpi - 4.3 安装spglib - 4.4 安装OpenBLAS - 4.5 ShengBTE编译 - 5 软件运行 - 5.1 运行Test-QE测试 - 6 FAQ - 7 其他1 软件介绍ShengBTE是求解声子玻尔兹曼传输方程的软件包。它的主要目的是计算晶格对大块晶体固体热导系数的贡献,但在扩散边界条件的假设下也可以对纳米线进行处理。除了热导系数本身之外,ShengBTE还计算并输出了大量关于所研究系统的附加信息。2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)   软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。cmake2.8.12.2见4.1章节 openmpi4.0.0见4.2章节 spglib1.14.0见4.3章节 OpenBLAS0.3.9见4.4章节代替MKL 3 系统配置3.1 配置本地yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。# 步骤 1 配置源文件 mv /etc/yum.repos.d/ /etc/yum.repos.d-bak mkdir /etc/yum.repos.d echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo #步骤 2 执行cat确认上一步操作写入成功,显示如下图 cat /etc/yum.repos.d/local.repo                      # 步骤 3 挂载源镜像,将系统镜像通过KVM挂载 mount /dev/cdrom /mnt 4 软件编译4.1 安装Cmake# 步骤 1 Yum安装cmake。 yum install –y cmake                     4.2 安装openmpi# 步骤 1 下载openmpi-4.0.0软件包。 wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.0.tar.gz # 步骤 2 解压并进入目录。 tar –zxvf openmpi-4.0.0.tar.gz cd openmpi-4.0.0 # 步骤 3 生成Makefile。 ./configure # 步骤 4 编译安装。 # 这里-j后面的数字小于等于机器的核数,请根据实际需要填写,重复发挥多核优势。 make -j96 && make install 4.3 安装spglib# 步骤 1 下载spglib并切换到1.14.0。 git clone https://github.com/atztogo/spglib.git cd spglib git checkout v1.14.0 # 步骤 2 执行cmake。 mkdir build && cd build cmake .. # 步骤 3 编译并安装。 make –j96 && make install4.4 安装OpenBLAS# 步骤 1 下载OpenBLAS并切换到0.3.9。 git clone https://github.com/xianyi/OpenBLAS.git cd OpenBLAS git checkout v0.3.9 # 步骤 2 编译并安装。 # 这里建议安装在/usr/local,默认安装在/opt/OpenBLAS下,后续需要手动添加到动态链接库,具体请见FAQ make TARGET=ARMV8 && make install PREFIX=/usr/local                     4.5 ShengBTE编译# 步骤 1 下载ShengBTE并切换到v1.1.1 git clone https://bitbucket.org/sousaw/shengbte.git cd shengbte git checkout v1.1.1 # 步骤 2 修改编译脚本。 cp arch.make.example Src/arch.make cd Src vi arch.make export FFLAGS=-debug -O2 export LDFLAGS=-L/usr/local/lib -lsymspg export MPIFC=mpifort BLAS=-L/usr/local/lib –lopenblas –lm # 这里填充openblas/lib的路径,请根据4.4修改 export LAPACK=$(BLAS) export LIBS=$(LAPACK) # 步骤 3 编译并生成可执行文件。 make 5 软件运行5.1 运行Test-QE测试# 步骤 1 将可执行文件复制到Test-QE目录下 cp ShengBTE Test-QE # 步骤 2 执行测试 cd Test-QE ./ShengBTE                     6 FAQ1.       运行时出现‘error while loading shared libraries: libopenblas.so’执行make install安装OpenBLAS时,如果不声明PREFIX=/usr/local,会默认安装到/opt/OpenBLAS下,该目录并非默认链接库,除了需要修改ShengBTE编译文件arch.mark之外,还需要将该/opt/OpenBLAS/lib加入到动态库中。在/etc/ld.so.conf后添加一行 /opt/OpenBLAS/lib,之后运行一下ldconfig# vi /etc/ld.so.conf include ld.so.conf.d/*.conf /opt/OpenBLAS/lib # ldconfig                7 其他参考文档:https://github.com/open-mpi/ompihttps://github.com/atztogo/spglibhttps://github.com/xianyi/OpenBLAShttps://aur.archlinux.org/packages/shengbte/             
  • [技术干货] Harbor1.10.2环境搭建指导书 – CentOS 7.6(基于TaiShan 服务器)
    目  录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙(可选) - 3.2 修改SELINUX为disabled(可选) - 3.3 配置本地yum源(可选) - 4 软件编译 - 4.1 Docker-ce安装 - 4.2 Docker-compose安装 - 4.3 Harbor安装 - 4.4 制作harbor-core-base镜像(可选) - 5 软件运行 - 5.1 启动Harbor - 6 FAQ - 7 其他                        1 软件介绍Harbor是构建企业级私有docker镜像的仓库的开源解决方案,是Docker Registry的更高级封装。除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库。2 环境配置 硬件平台服务器TaiShan 200 2280处理器         2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Docker-ce19.03.8见4.1章节支持版本最低为17.06.0-ceDocker-compose1.18.0见4.2章节支持版本最低为1.18.03 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置本地yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。# 步骤 1 配置源文件 mv /etc/yum.repos.d/ /etc/yum.repos.d-bak mkdir /etc/yum.repos.d echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo # 步骤 2 执行cat确认上一步操作写入成功,显示如下图 cat /etc/yum.repos.d/local.repo # 步骤 3 挂载源镜像,将系统镜像通过KVM挂载 mount /dev/cdrom /mnt4 软件编译4.1 Docker-ce安装所有节点都需要安装Docker,这里安装的是19.03.8。# 步骤 1 安装Docker 所需的软件包。 yum install -y yum-utils # 步骤 2 设置docker yum源。 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 步骤 3 查看可安装的版本 # yum源有时候会更新,请根据实际情况选择具体的版本安装 yum list docker-ce --showduplicates | sort -r # 步骤 4 安装Docker-ce。 # 安装指定版本的方法是:软件名称-版本.软件后缀,如下: yum install docker-ce-3:19.03.8-3.el7.aarch64 # 步骤 5 启动Docker。 systemctl start docker # 步骤 6 Docker自启动 systemctl enable docker4.2 Docker-compose安装# 步骤 1 安装EPEL源。 yum install –y epel-release # 步骤 2 安装docker-compose。 yum install –y docker-compose -enablerepo=epel4.3 Harbor安装# 步骤 1 Harbor源码下载解压。 wget https://github.com/goharbor/harbor/archive/v1.10.2.tar.gz tar –zxvf v1.10.2.tar.gz cd harbor-1.10.2 # 步骤 2 编辑Makefile文件,启动编译组件功能。 vi Makefile ... 82 BUILDBIN=true ... 99 REGISTRYVERSION=v2.7.1# 步骤 3 编辑yml文件。 # 修改hostname和https配置,本文档屏蔽了https的使用,如需使用https,请生成证书并配置到对应路径下。 vi make/harbor.yml# 步骤 4 编辑文件,将X86的源镜像修改为arm64的镜像。 # 本步骤涉及的base镜像均对应1.10.2版本,如编译其他大于1.10版本的harbor,可在dockerhub搜索是否有对应版本Arm64的镜像(base镜像不同版本差异较小),也可根据4.4章节的步骤,使用官方提供的Dockerfile.base自行打包。 find ./ -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s#photon:2.0#photon:3.0#g" sed -i "s/goharbor/liar/g" ./make/photon/log/Dockerfile find ./make/photon -type f|grep "Dockerfile$"|grep -v "\.D"|xargs sed -i "s/goharbor/glongzh/g" # 步骤 5 拉取golang 1.12.12官网镜像。 docker pull golang:1.12.12 # 步骤 6 编译、安装和启动harbor服务。 make install GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.10.2 PKGVERSIONTAG=v1.10.2 UIVERSIONTAG=v1.10.2 BASEIMAGETAG=v1.10.2 # 步骤 7 编译离线安装包(可选)。 make package_offline GOBUILDIMAGE=golang:1.12.12 VERSIONTAG=v1.10.2 PKGVERSIONTAG=v1.10.2 UIVERSIONTAG=v1.10.2 BASEIMAGETAG=v1.10.2 # 步骤 8 启动harbor,执行如下步骤(可选)。 tar -xvf harbor offline installer xxx.tgz && cd harbor sh install.sh4.4 制作harbor-core-base镜像(可选)Harbor 1.10后将各个组件镜像打包分成两步,先官方会先打包一个预编译好的base镜像,实际打包过程拉取base镜像,然后配置环境就可以了。官方的base镜像是X86平台下的,迁移到Arm64平台需要重新打包。除了redis外,大部分组件base镜像的迁移方式相同,本章节以core为例,如需要打包redis.base,请参考https://github.com/docker-library/redis。# 步骤 1 复制Dockerfile。 cd make/photon/core mkdir base cp Dockerfile.base base/Dockerfile cd base # 步骤 2 修改Dockerfile。 # 将photon:2.0修改为photon:3.0,是因为photon 3.0才开始支持aarch64。 sed -i "s/2.0/3.0/g" Dockerfile # 步骤 3 打包镜像。 # 镜像前缀和版本请自行填写,本例为xxxx和1.10.2,但是注意4.3章节替换时需对应上 docker build -t xxxx/harbor-core-base:1.10.2 .# 步骤 4 查看生成的镜像。 docker images |grep xxxx5 软件运行5.1 启动Harbor# 步骤 1 查看各个模块运行状态 docker-compose ps# 步骤 2 浏览器访问 6 FAQRedis 状态为down,查看日志报错“Unsupported system page size”redis在新版本中默认使用了jemalloc进行内存管理,由于jemalloc 在编译时就决定了page size的大小,而这个page size 会由于kernel的配置而改变,因此jemalloc在某个机器上编译,然后运行在其它机器上时可能会出现问题。这里出现这个报错的原因是docker镜像打包的环境pagesize为4k,而CentOS 7.6 for arm默认为64k解决方法:参照4.3章节修改redis源镜像信息 7 其他参考文档:        http://ic-openlabs.huawei.com/openlab/#/knowledgebasequery?task_id=R1S1584D00303813520191125094129756587245         
  • [技术干货] LibMCrypt环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 依赖安装安装 - 4.2 LibMCrypt编译安装 - 5 软件运行 - 5.1 运行测试 - 6 其他1 软件介绍MCrypt 是php里面重要的加密支持扩展库,linux环境下该库在默认情况下不开启。window环境下,PHP>=5.3,默认开启mcrypt扩展。MCrypt基于libMCrypt,但libMCrypt自2007年开始没再继续维护,所以mcrypt拓展从PHP7.2之后删除。2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Gcc4.8.5Yum源安装  3 系统配置3.1 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache 4 软件安装4.1 依赖安装安装# 步骤 1 Yum源安装依赖。 yum install –y make gcc-c++ gcc4.2 LibMCrypt编译安装# 步骤 1 下载并解压LibMCrypt v2.0.15。 wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8 # 步骤 2 配置编译选项。 ./configure --build=arm # 步骤 3 编译安装。 make -j96 && make install5 软件运行5.1 运行测试# 步骤 1 运行自带的测试套 make check6 其他参考文档:https://blog.csdn.net/nianyixiaotian/article/details/82706927          
  • [技术干货] Libopus环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙(可选) - 3.2 修改SELINUX为disabled(可选) - 3.3 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 Yum安装依赖 - 4.2 升级GCC - 4.3 编译安装Libopus - 5 软件运行 - 5.1 运行测试 - 6 其他1 软件介绍opus是一个有损声音编码的格式,由Xiph.Org基金会开发,之后由IETF互联网工程任务组进行标准化,目标用希望用单一格式包含声音和语音,取代Speex和Vorbis,且适用于网上上低延迟的即时声音传输,标准格式定义于RFC 6716文件。Opus格式是一个开放格式,使用上没有任何专利或限制。  2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Gcc7.3.0见4.2章节依赖Neon指令,需升级到7.3.0及之后的版本 3 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache 4 软件安装4.1 Yum安装依赖# 步骤 1 安装相关依赖。 yum -y install bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel gcc* git autoconf automake libtool make4.2 升级GCC# 步骤 1 下载并解压gcc。 # 目录请根据实际需要放置 cd /home wget https://mirror.bjtu.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz tar -xvf gcc-9.3.0.tar.gz && cd /home/gcc-9.3.0 # 步骤 2 配置编译脚本。 ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-bootstrap --perfix=PATH:指定gcc软件安装目录。默认路径/usr --mandir=PATH:指定gcc软件文档目录。默认路径/usr/share/man --infodir=PATH:指定gcc软件日志信息目录。默认路径/usr/share/info --enable-bootstrap:指定启用bootstrap方式安装 # 步骤 3 编译安装。 # -j96 参数充分利用多核CPU优势,加快编译速度,可以用lscpu查看总共有多少核 make -j96 && make install # 步骤 4 检查版本。 gcc -v4.3 编译安装Libopus# 步骤 1 下载并解压官方的预编译包。 wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz tar –zxvf opus-1.3.1.tar.gz cd opus-1.3.1 # 步骤 2 配置编译脚本。 # 此处用的默认配置,可通过./configure -h查看可配置项 ./configure # 步骤 3 编译安装。 make -j96 && make install 5 软件运行5.1 运行测试# 步骤 1 运行自带的测试套 make check 6 其他参考文档:https://gitlab.xiph.org/xiph/opus             
  • [技术干货] unixODBC环境搭建指导书 – CentOS 7.6(基于TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙(可选) - 3.2 修改SELINUX为disabled(可选) - 3.3 配置远程yum源(可选) - 4 软件编译 - 4.1 unixODBC Yum源安装 - 4.2 unixODBC源码安装 - 5 软件运行 - 5.1 使用unixODBC连接MySQL - 6 FAQ                                                                              1 软件介绍unixODBC是一个来连接数据库的组件。ODBC是Open Database Connect 即开发数据库互连的简称,它是一个用于访问数据库的统一界面标准。ODBC引入一个公共接口以解决不同数据库潜在的不一致性,从而很好的保证了基于数据库系统的应用程序的相对独立性。 2 环境配置硬件平台服务器TaiShan 200 2280处理器         2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。gcc4.8.5见4.1章节 3 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置远程yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。# 步骤 1 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 2 配置华为源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 3 清除Yum缓存 yum clean all # 步骤 4 重建缓存 yum makecache 4 软件编译4.1 unixODBC Yum源安装yum源已有unixODBC的2.3.1版本,可以直接通过yum源安装,也可以通过源码编译安装,本章节介绍yum源安装的方式,如需通过源码安装,请见4.2章节。# 步骤 1 yum安装。 yum install unixodbc unixodbc-devel # 步骤 2 查看版本和配置 odbcinst -j4.2 unixODBC源码安装# 步骤 1 安装依赖。 yum install –y gcc gcc-c++ # 步骤 2 下载源码并解压。 wget http://www.unixodbc.org/unixODBC-2.3.7.tar.gz tar -zxvf unixODBC-2.3.7.tar.gz cd unixODBC-2.3.7 # 步骤 3 执行配置。 ./configure# 步骤 4 执行编译安装。 # -j后的参数请根据机器的具体核数填写,充分发挥多核性能。 make -j96 && make install# 步骤 5 验证版本。 odbcinst -j5 软件运行5.1 使用unixODBC连接MySQL# 步骤 1 安装MySQL # 参考《数据库(mysql)环境搭建指导书.pdf》安装MySQL # 步骤 2 安装mysql-connector-odbc yum install –y mysql-connector-odbc # 步骤 3 查看unixODBC配置文件读取位置 odbcinst -j其中odbcinst.ini是驱动信息,odbc.ini是数据库连接信息# 步骤 4 配置驱动信息 # 这里修改的文件请根据步骤3查询到的读取位置修改 #本例为MySQL的驱动信息 vi /etc/odbcinst.ini [MySQL] # 驱动名称,配置连接时需要使用 Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1# 步骤 5 配置数据库连接信息 vi /etc/odbc.ini [mysql] # 连接名称 Description = The Database for mysql Trace = On TraceFile = stderr Driver = MySQL # 驱动名称,对应驱动配置中的信息 SERVER = 127.0.0.1 # 连接数据库IP/Host USER = root # 连接数据库角色 PASSWORD = 123456 # 数据库连接密码 PORT = 3306 # 数据库连接端口 DATABASE = test1 # 要连接的数据库名称 charset = UTF8 option = 3# 步骤 6 使用unixODBC连接 isql mysql6 FAQERROR: Could not SQLConnect配置完使用isql连接的时候出现报错,但是没有具体的报错信息解决方法:调用时加上-v参数,显示打印报错信息,如下
  • [技术干货] EMQ X环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 rpm包安装 - 4.2 Zip包安装 - 4.3 源码编译安装 - 5 软件运行 - 5.1 运行EMQ X - 6 其他1 软件介绍EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。 2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)   软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Gcc4.8.5Yum源安装  3 系统配置3.1 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache 4 软件安装4.1 – 4.3是三种安装方式,请根据需求选择一种即可。4.1 rpm包安装EMQ X从4.2.0开始,官方提供CentOS 7 aach64的rpm包,可直接下载rpm包安装,低于4.2.0的版本,可采用源码编译安装的方式。# 步骤 1 下载emqx 4.2.0 rpm包。 wget https://www.emqx.io/downloads/broker/v4.2.0/emqx-centos7-4.2.0-aarch64.rpm # 步骤 2 安装rpm包。 rpm -ivh emqx-centos7-4.2.0-aarch64.rpm4.2 Zip包安装EMQ X从4.2.0开始,官方提供CentOS 7 aach64的zip包,可直接下载zip包安装,低于4.2.0的版本,可采用源码编译安装的方式。# 步骤 1 下载emqx 4.2.0 zip包。 # 实际目录请自行选择,这里以home为例 cd /home wget https://www.emqx.io/downloads/broker/v4.2.0/emqx-centos7-4.2.0-aarch64.zip # 步骤 2 解压并进入目录。 unzip emqx-centos7-4.2.0-aarch64.zip && cd emqx # 步骤 3 配置环境变量。 echo export PATH=/home/emqx/bin:$PATH >> /etc/profile source /etc/profile4.3 源码编译安装# 步骤 1 安装依赖。 yum install -y gcc* libtool libtool-ltdl-devel libevent-devel lua ncurses-devel openssl-devel flex # 步骤 2 下载并解压erlang 22.0。 # 编译EMQ X 3.2之后的版本要求erlang版本不低于21.3 wget http://erlang.org/download/otp_src_22.0.tar.gz tar –zxvf otp_src_20.0.tar.gz && cd otp_src_22.0 # 步骤 3 编译安装erlang。 # -j96 参数充分利用多核CPU优势,加快编译速度,可以用lscpu查看总共有多少核 ./configure make –j96 && make install # 步骤 4 下载EMQX 4.2.0源码。 # 实际目录请自行选择,这里以home为例 cd /home git clone -b v4.2.0 https://github.com/emqx/emqx-rel.git cd emqx-rel # 步骤 5 添加编译变量。 export EMQX_DEPS_DEFAULT_VSN=v4.0.0 # 步骤 6 执行编译。 make –j96 # 步骤 7 配置环境变量。 echo export PATH=/home/emqx-rel/_build/emqx/rel/emqx/bin:$PATH >> /etc/profile source /etc/profile5 软件运行5.1 运行EMQ X# 步骤 1 启动EMQ X emqx start# 步骤 2 查询运行状态 emqx_ctl status# 步骤 3 停止EMQ X emqx stop6 其他参考文档:https://www.huaweicloud.com/kunpeng/software/erlang.htmlhttps://docs.emqx.net/broker/latest/cn/getting-started/install.html#build              
  • [技术干货] ProxySQL环境搭建指导书 - CentOS 7.6(基于TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 配置华为镜像yum源(可选) - 4 软件安装 - 4.1 依赖安装安装 - 4.2 Openssl安装 - 4.3 Proxysql编译安装 - 4.4 Proxysql打包RPM包(可选) - 5 软件运行 - 5.1 运行测试 -6 其他1 软件介绍ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 2 环境配置本文档基于TaiShan 200服务器硬件环境展开。服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  1 * 10GE(1822)   软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。Gcc4.8.5Yum源安装 Openssl1.1.1g详见4.2章节依赖1.1.0后的版本 3 系统配置3.1 配置华为镜像yum源(可选)若环境无外网条件,请配置本地源。# 步骤 1 安装依赖 yum install –y wget # 步骤 2 备份配置文件 cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak # 步骤 3 下载配置文件 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo # 步骤 4 刷新缓存 yum clean all yum makecache4 软件安装4.1 依赖安装安装# 步骤 1 Yum源安装依赖。 yum install –y automake bzip2 cmake make gcc-c++ gcc git openssl openssl-devel gnutls gnutls-devel libtool patch4.2 Openssl安装# 步骤 1 下载并解压openssl 1.1.1g。 # 实际目录请自行选择,这里以home为例 cd /home wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz tar –zxvf openssl-1.1.1g.tar.gz && cd openssl-1.1.1g # 步骤 2 配置编译选项。 ./config # 步骤 3 编译安装。 # -j后面参数建议填写CPU核数,可使用lscpu查看 make –j96 && make install4.3 Proxysql编译安装# 步骤 1 下载Proxysql v2.0.15。 git clone –b v2.0.15 https://github.com/sysown/proxysql.git cd proxysql # 步骤 2 编译。 make –j96 # 这里执行完会在src目录生成proxysql的可执行文件,此时已经可以直接使用,安装只是将相关文件放到bin目录下 # 步骤 3 安装。 make install4.4 Proxysql打包RPM包(可选)# 步骤 1 下载Proxysql v2.0.15。 git clone –b v2.0.15 https://github.com/sysown/proxysql.git cd proxysql # 步骤 2 安装依赖。 # Proxysql使用docker镜像来打包rpm包,需要安装docker和docker-compose yum install -y yum-utils epel-release yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce-3:19.03.7-3.el7.aarch64 docker-compose systemctl start docker # 步骤 3 打包rpm。 # 这一步需要根据目标安装机器的操作系统版本来打包,这里以centos7_arm64为例,可以通过Makefile查看支持哪些操作系统 make centos7_arm64 # 打包完成后,会在binaries文件夹生成对应的rpm包5 软件运行5.1 运行测试# 步骤 1 登录管理端口 # 默认管理账号admin,密码admin,管理端口6032,客户端口6033 mysql –uadmin –padmin -h127.0.0.1 –P6032# 步骤 2 添加服务器信息 # mysql服务信息请以实际情况为准 Mysql> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'127.0.0.1',3306); Mysql> insert into mysql_servers(hostgroup_id,hostname,port) values(10,'127.0.0.1',3307); # 步骤 3 保存修改 Mysql> load mysql servers to runtime; Mysql> save mysql servers to disk; # 步骤 4 在两个mysql服务添加监控账号 Mysql> create user monitor@'%' identified by '123'; Mysql> grant all on *.* to monitor@'%'; # 步骤 5 proxysql 管理端口配置监控账号信息 Mysql> set mysql-monitor_username='monitor'; Mysql> set mysql-monitor_password='123'; Mysql> load mysql servers to runtime; Mysql> save mysql servers to disk; # 步骤 6 检查监控状态 Mysql> select * from mysql_server_connect_log;6 其他参考文档:https://github.com/sysown/proxysql/blob/v2.1.0/INSTALL.mdhttps://blog.csdn.net/qq_31144297/article/details/103988435              
  • [技术干货] MyCAT环境搭建指导书 – CentOS 7.6(TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙(可选) - 3.2 修改SELINUX为disabled(可选) - 3.3 配置本地yum源(可选 - 4 软件编译 - 4.1 安装依赖包 - 4.2 MySQL编译安装 - 4.3 MyCAT安装 - 5 软件配置 - 5.1 配置MySQL - 5.2 配置MyCAT - 6 软件运行 - 6.1 启动MyCAT - 7 FAQ - 8 其他                                                                               1 软件介绍MyCat是目前最流行的基于Java语言编写的数据库中间件,是一个实现了MySql协议的服务器,其核心功能是分库分表。配合数据库的主从模式还可以实现读写分离。2 环境配置 硬件平台服务器TaiShan 200 2280处理器         2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网络1 * GE(板载)  软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。OpenJDK1.8.0_252见4.1章节本文档使用yum源安装OpenJDK,如需安装其他版本,参考:https://www.huaweicloud.com/kunpeng/software/openjdk.htmlMySQL5.7.27见4.2章节管理节点数据库对版本无特别要求,本文档以5.7.27为例。MyCat1.6.7.4见4.3章节 3 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux3.3 配置本地yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。# 步骤 1 配置源文件 mv /etc/yum.repos.d/ /etc/yum.repos.d-bak mkdir /etc/yum.repos.d echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo # 步骤 2 执行cat确认上一步操作写入成功,显示如下图 cat /etc/yum.repos.d/local.repo# 步骤 3 挂载源镜像,将系统镜像通过KVM挂载 mount /dev/cdrom /mnt4 软件编译4.1 安装依赖包# 步骤 1 安装OpenJDK。 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel4.2 MySQL编译安装MyCAT依赖MySQL运行,需先安装MySQL数据库,本文档将MySQL和MyCAT安装在同一台服务器,实际安装请根据需要部署。MySQL安装指导书参考:《数据库(mysql)环境搭建指导书.pdf》4.3 MyCAT安装# 步骤 1 下载并解压MyCAT。 # 本文档将MyCAT安装到/opt/tools/installed下,实际安装请根据需要部署。 cd /opt/tools/installed wget https://github.com/MyCATApache/Mycat-Server/releases/download/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz tar –zxvf Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz5 软件配置第5,6章节展示MyCAT运行的简单例子,实际部署请以真实需求为准。本例中MyCAT和MySQL的对应关系如下:其中,db01-03三个数据库部署在同一个MySQL5.1 配置MySQL# 步骤 1 创建users # 登录MySQL并执行相关语句 mysql –uroot -p MySql > create database db01; MySql > use db01; MySql > CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '', `indate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #步骤 2 创建item mysql -uroot –p MySql > create database db02; MySql > use db02; MySql > CREATE TABLE `item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` int(11) NOT NULL DEFAULT '0', `indate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; # 步骤 3 创建item mysql -uroot –p MySql > create database db03; MySql > use db03; MySql > CREATE TABLE `item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` int(11) NOT NULL DEFAULT '0', `indate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;5.2 配置MyCAT本章节涉及的配置文件均在MyCAT目录下,文档将MyCAT安装在/opt/tools/installed下,编辑时请根据实际部署位置处理。# 步骤 1 配置xml # Server.xml配置MyCAT服务启动的相关参数,例如对外服务的端口,管理端口以及连接MyCAT的账号密码信息等,[password]为连接MyCAT的密码信息,请根据实际情况配置。 # 注意“TESTDB”为schema.xml中声明的逻辑数据库的名称,如在schema.xml修改,此文档也需要对应修改。 cd /opt/tools/installed/mycat vim conf/server.xml<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <system> <property name="useSqlStat">0</property> <!-- 1为开启实时统计、0为关闭 --> <property name="useGlobleTableCheck">0</property> <!--1为开启全局表一致性检测--> <property name="sequnceHandlerType">1</property> <propertyname="processorBufferPoolType">0</property> <property name="serverPort">8066</property> <!--8066为连接mycat的端口--> <property name="managerPort">9066</property> <!--9066为连接管理地址的端口-> <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property> <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> <property name="handleDistributedTransactions">0</property> <property name="useOffHeapForMerge">1</property> <property name="memoryPageSize">1m</property> <property name="spillsFileBufferSize">1k</property> <property name="useStreamOutput">0</property> <property name="systemReserveMemorySize">384m</property> <property name="useZKSwitch">true</property> </system> <!-- 配置连接mycat的账号密码, 和逻辑库名称, 可以设置多个--> <user name="root"> <property name="password">[password]</property> <property name="schemas">TESTDB</property> </user> <user name="user"> <property name="password">[password]</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user> </mycat:server># 步骤 2 配置xml。 # rule.xml配置分表分库的规则,本例使用了取模算法,配置如下 cd /opt/tools/installed/mycat vim conf/server.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:rule SYSTEM "rule.dtd"> <mycat:rule xmlns:mycat="http://io.mycat/"> <!-- 指定表规则的名称, 以及分片的function--> <tableRule name="mod-long"> <rule> <columns>id</columns> <algorithm>mod-long</algorithm> </rule> </tableRule> <!-- 分片名称为mod-long, 为tableRule标签提供--> <function name="mod-long" class="io.mycat.route.function.PartitionByMod"> <!-- 指定有几个节点,咱们有两个db02和db03,所以写2, 取模就是id%2 --> <property name="count">2</property> <property name="virtualBucketTimes">160</property> </function> </mycat:rule># 步骤 3 配置xml。 # schema.xml配置逻辑数据库/表和物理数据库/表的对应关系,以及采用的分片规则,本例配置如下。这里的[password]为连接物理数据库的密码,请按实际情况填写。 cd /opt/tools/installed/mycat vim conf/schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <!-- 声明一个逻辑表, 表名为TESTDB, 和server.xml中的对应 --> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- 指定实际表名为users, 是在node_db01节点上--> <table name="users" primaryKey="id" autoIncrement="true" dataNode="node_db01" /> <!-- 实际表名为item, 在node_db02和node_db03节点上--> <table name="item" primaryKey="id" autoIncrement="true" dataNode="node_db02,node_db03" rule="mod-long" /> </schema> <dataNode name="node_db01" dataHost="dataHost01" database="db01" /> <dataNode name="node_db02" dataHost="dataHost01" database="db02" /> <dataNode name="node_db03" dataHost="dataHost01" database="db03" /> <!-- 声明数据库的连接地址, 名称为dataHost01, 为dataNode节点提供--> <dataHost name="dataHost01" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native"> <heartbeat>select user()</heartbeat> <!-- 数据库的连接地址,账号和密码--> <writeHost host="server1" url="127.0.0.1:3306" user="root" password="[password]" /> </dataHost> </mycat:schema># 步骤 4 配置启动脚本。 # 需在启动脚本中指定运行的jre,默认安装在/usr/lib/jvm下并且由于启动脚本含”^M”,实际运行会出错,需进行相关处理。 cd /opt/tools/installed/mycat vi start_nowrap.sh JAVA_HOME=/usr/lib/jvm/jre-1.8.0mv startup_nowrap.sh startup_nowrap.sh.bak cat startup_nowrap.sh.bak | tr –d "\r" > startup_nowrap.sh chmod +x startup_nowrap.sh6 软件运行6.1 启动MyCAT# 步骤 1 启动服务 cd /opt/tools/installed/mycat ./bin/startup_nowrap.sh # 步骤 2 登录查看逻辑库信息 # 这里的8066端口由server.xml定义,请根据实际情况处理 mysql –h127.0.0.1 –P8066 –uroot –p MySql> show databases; MySql> use TESTDB; MySql> show tables;# 步骤 3 插入数据 insert into users(id,name,indate) values(1,'hello',now()); insert into users(id,name,indate) values(2,'world',now()); insert into item(id,value,indate) values(1,100,now()); insert into item(id,value,indate) values(2,100,now()); # 步骤 4 登录物理数据库查看分表结果 mysql –h127.0.0.1 –uroot -p MySql> select * from db01.users; MySql> select * from db02.item; MySql> select * from db03.item;7 FAQlang.OutOfMemoryError启动时MaxDirectMemorySize(堆外内存最大值)设置过小,需修改启动脚本,增大MaxDirectMemorySize,本例中修改为6G,也可根据实际情况修改 8 其他参考文档:        http://ic-openlabs.huawei.com/openlab/#/knowledgebasequery?task_id=R5S1584D11604705120200527163453996333121        https://blog.csdn.net/yu342107056/article/details/88326540
  • [技术干货] Otter环境搭建指导书-CentOS 7.6(TaiShan 服务器)
    目录- 1 软件介绍 - 2 环境配置 - 3 系统配置 - 3.1 关闭防火墙(可选) - 3.2 修改SELINUX为disabled(可选) - 3.3 配置本地yum源(可选) - 4 软件编译 - 4.1 安装依赖包 - 4.2 Maven安装配置 - 4.3 MySQL编译安装 - 4.4 Zookeeper编译安装 - 4.5 Otter编译打包 - 5 软件配置 - 5.1 配置MySQL - 5.2 配置Manager - 5.3 配置Node - 6 软件运行 - 6.1 Otter运行 - 7 FAQ - 8 其他1 软件介绍Otter是一个分布式数据库同步系统,纯JAVA开发,基于数据库增量日志解析,准实时同步到本机或异地机房的mysql/oracle数据库。2 环境配置角色配置IP角色相关服务172.170.100.13ManagerOtter-manager,MySQL, zookeeper172.170.100.14NodeOtter-node 硬件平台服务器TaiShan 200 2280处理器2*KunPeng 920 4826内存16*32G 2666MHz系统盘1 * 1.2T SATA HDD数据盘1 * 960G SSD网盘1 * GE(板载) 软件平台软件名称版本号安装方法备注CentOS7.6https://support.huawei.com/enterprise/zh/doc/EDOC1100088654/3e971c8d本文档安装过程选择的环境为“Server with GUI”,并附加了“Development Tools”。OpenJDK1.8.0_252无需手动安装本文档使用 “Development Tools”自带的OpenJDK,如需安装其他版本,参考:https://www.huaweicloud.com/kunpeng/software/openjdk.htmlAria21.34.0-6见4.1章节Maven3.6.1见4.2章节MySQL8.0.17见4.3章节管理节点数据库对版本无特别要求,本文档以8.0.17为例。注意:同步支持的数据库为mysql系列的5.1 ~ 5.6/5.7版本,mariadb 5/10版本。Zookeeper3.4.14见4.4章节对版本无特别要求,本文档以3.4.14为例,以单机形式部署 3 系统配置3.1 关闭防火墙(可选)# 步骤 1 停止防火墙。 systemctl stop firewalld.service # 步骤 2 关闭防火墙。 systemctl disable firewalld.service3.2 修改SELINUX为disabled(可选)# 步骤 1 关闭防火墙。 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux       3.3 配置本地yum源(可选)若环境有外网条件,可不用配置本地源,直接用系统配置好的网上源或者自己添加网上源即可。# 步骤 1 配置源文件 mv /etc/yum.repos.d/ /etc/yum.repos.d-bak mkdir /etc/yum.repos.d echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo # 步骤 2 执行cat确认上一步操作写入成功,显示如下图 cat /etc/yum.repos.d/local.repo# 步骤 3 挂载源镜像,将系统镜像通过KVM挂载 mount /dev/cdrom /mnt4 软件编译4.1 安装依赖包Node节点间依赖aria2传输,所有Node节点都需安装以下依赖# 步骤 1 添加epel源。 yum install -y epel-release # 步骤 2 安装aria2。 yum install –y aria2 4.2 Maven安装配置Maven只需要安装到编译打包的机器,其他的机器无需安装,这里安装到Manager节点# 步骤 1 下载并解压Maven 3.6.1到/home/tool目录下。 cd /home/tool wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz tar -zxvf apache-maven-3.6.1-bin.tar.gz mv apache-maven-3.6.1 /opt/tools/installed # 步骤 2 配置环境变量。 # 创建maven.sh文件并写入Maven环境信息 vim /etc/profile.d/maven.sh MAVEN_HOME=/opt/tools/installed/apache-maven-3.6.1 PATH=$MAVEN_HOME/bin:$PATH export MAVEN_HOME PATH #步骤 3 使环境变量生效。 source /etc/profile # 步骤 4 版本检查。 mvn -v# 步骤 5 修改配置文件优先使用鲲鹏镜像源。 # 修改/home/tool/mvn/conf/setting.xml,在profiles处添加鲲鹏镜像源 vi /home/tool/mvn/conf/setting.xml                  <profile> <repositories> <repository> <id>kunpeng</id> <url>https://mirrors.huaweicloud.com/kunpeng/maven/</url> <releases> <enabled>true</enabled> </releases> </repositories> </profile>4.3 MySQL编译安装Otter manager依赖于MySQL进行配置信息的存储,所以需要预先安装MySQL。本文档将MySQL安装到Manager所在节点,可根据实际需求安装,能相互访问即可。MySQL安装指导书参考:《数据库(mysql)环境搭建指导书.pdf》4.4 Zookeeper编译安装整个Otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper。本文档以单机的形式部署到Manager节点,实际安装过程可根据需求部署,能相互访问即可。Zookeeper安装指导书参考:《Zookeeper 3.4.14环境搭建指导书》4.5 Otter编译打包# 步骤 1 下载并解压Otter-4.2.18到/home/otter下。 cd /home/otter wget https://github.com/alibaba/otter/archive/otter-4.2.18.tar.gz tar –zxvf otter-4.2.18.tar.gz cd otter-otter-4.2.18 # 步骤 2 编辑Pom.xml修改ojdbc6版本 # 默认使用的ojdbc6的版本官方已经下架,需进行相关的修改,本例修改为11.2.0.3的版本,经测试可正常运行。 # 修改Pom.xml的237行,将版本号改为11.2.0.3 vi pom.xml# 步骤 3 编辑Pom.xml配置仓库 # Otter在pom.xml限制了拉取的仓库,由于国内网络的原因,建议配置国内镜像源,本文档以鲲鹏源(arm源)和华为源为例,在55行处插入如下仓库信息: vi pom.xml<repository> <id>Kunpeng</id> <url>https://mirrors.huaweicloud.com/kunpeng/maven/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>huawei</id> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository># 步骤 4 执行编译打包。 mvn clean install -Dmaven.test.skip -Denv=release # 步骤 5 检查编译打包结果。 # 编译完成后,会在根目录下产生target/manager.deployer-4.2.18.tar.gz和target/node.deployer-4.2.18.tar.gz ll target                              5 软件配置5.1 配置MySQLOtter manager依赖MySQL进行配置信息存储,需先初始化otter manager的系统表结构,以下命令须在能连接Manager MySQL的机器进行。# 步骤 1 下载otter manager系统表 cd /home/otter wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql # 步骤 2 登录mysql执行otter-manager-schema.sql # 这里主机Ip请根据实际IP填写 mysql –h 主机IP –uroot -p MySql> source /home/otter/otter-manager-schema.sql5.2 配置Manager# 步骤 1 复制并解压manager.deployer-4.2.18.tar.gz # 将4.4章节编译打包生成的manager.deployer-4.2.18.tar.gz复制到manager节点的/home/otter/manager下,具体目录请根据实际情况修改。 mkdir –p /home/otter/manager cp manager.deployer-4.2.18.tar.gz /home/otter/manager/ cd /home/otter/manager tar –zxvf manager.deployer-4.2.18.tar.gz # 步骤 2 修改manager配置文件。 # 配置访问IP,数据库,zookeeper,请根据实际情况配置 vi conf/otter.properties ## otter manager domain name #修改为正确访问地址/ip,例如本文档这里修改为172.170.100.13 otter.domainName = 127.0.0.1 ## otter manager http port,如被占用可自行更改 otter.port = 8080 ## jetty web config xml otter.jetty = jetty.xml ## otter manager database config ,修改为正确数据库信息 otter.database.driver.class.name = com.mysql.jdbc.Driver otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager otter.database.driver.username = root otter.database.driver.password = hello ## otter communication port,节点沟通的端口 otter.communication.manager.port = 1099 ## otter communication pool size otter.communication.pool.size = 10 ## default zookeeper address,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表 otter.zookeeper.cluster.default = 127.0.0.1:2181 default zookeeper session timeout = 90s otter.zookeeper.sessionTimeout = 90000 otter arbitrate connect manager config otter.manager.address = ${otter.domainName}:${otter.communication.manager.port} 5.3 配置Node# 步骤 1 复制并解压node.deployer-4.2.18.tar.gz # 将4.4章节编译打包生成的node.deployer-4.2.18.tar.gz复制到node节点的/home/otter/node下,具体目录请根据实际情况修改。 mkdir –p /home/otter/node cp node.deployer-4.2.18.tar.gz /home/otter/node/ cd /home/otter/node tar –zxvf node.deployer-4.2.18.tar.gz # 步骤 2 修改node配置文件。 # 配置访问IP,数据库,zookeeper,请根据实际情况配置 vi conf/otter.properties otter node root dir otter.nodeHome = ${user.dir}/../node ## otter node dir otter.htdocs.dir = ${otter.nodeHome}/htdocs otter.download.dir = ${otter.nodeHome}/download otter.extend.dir= ${otter.nodeHome}/extend ## default zookeeper sesstion timeout = 60s otter.zookeeper.sessionTimeout = 60000 ## otter communication pool size otter.communication.pool.size = 10 ## otter arbitrate & node connect manager config ,修改为正确的manager服务地址 otter.manager.address = 127.0.0.1:1099 6 软件运行6.1 Otter运行# 步骤 1 启动Manager。 # 进入Manager节点otter目录,执行启动脚本 cd /home/otter/manager ./bin/startup.sh# 步骤 2 登录网页。 # 在浏览器登录5.2章节配置的访问地址,例如本文档为http://172.170.100.13:8080# 步骤 3 登录管理员账号。 # 浏览页面默认是匿名访问,需登录管理员账号才能进行管理。点击页面右上角进行登录,默认账号密码为admin和admin# 步骤 4 添加zookeeper集群。 # 点击“机器管理”下的“zookeeper管理”,之后点击“添加”添加zookeeper集群信息,填写相关信息“保存”后完成添加。注意,集群节点配置处必须以分号结束。步骤 5 添加节点。 # 点击“机器管理”下的“Node管理”,之后点击“添加”添加机器信息 # 机器名称:可以随意定义,方便自己记忆即可 # 机器ip:对应node节点将要部署的机器ip,如果有多ip时,可选择其中一个ip # 机器端口:对应node节点将要部署时启动的数据通讯端口,官方建议值:2088 # 下载端口:对应node节点将要部署时启动的数据下载端口,官方建议值:9090 # 外部ip :对应node节点将要部署的机器ip,存在的一个外部ip,允许通讯的时候走公网处理。 # zookeeper集群:为提升通讯效率,不同机房的机器可选择就近的zookeeper集群。这里获取到机器的序号是“2”# 步骤 6 配置Node序号。 # 机器添加完成后,跳转到机器列表页面,获取对应的机器序号nid,上一步骤能得到node1序号是2, # 需要将其配置到对应Node节点的conf目录下,下面的“2”是指添加机器后的序号,请根据实际情况填写 cd /home/otter/node echo 2 > conf/nid #步骤 7 启动Node。 cd /home/otter/node ./bin/startup.sh7 FAQ支持同步的数据库有哪些?见官方声明:支持mysql系列的5.1 ~ 5.6/5.7版本,mariadb 5/10版本.   (全面支持ROW/STATEMENT/MIXED几种binlog格式的解析)编译过程jtester包无法下载Jtester包仅在google源有,由于国内网络原因,可能无法直接拉取,可以手动下载jtester-1.1.8.jar,然后通过以下命令安装到本地仓库:mvn install:install-file –Dfile=jar包所在路径 –DgroupId=org.jtester –DartifactId=jtester –Dversion=1.1.8 –Dpackaging=jar8 其他参考文档:        https://github.com/alibaba/otter/wiki
  • [技术干货] 鲲鹏920(ARM64)Influxdb_1.8.2移植_for_centos7.6
    简介InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。安装依赖库yum install -y wget vim openssl openssl-devel curl curl-devel expat expat-devel gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.4 tcl gettext #能访问互联网,或是有epel源,可直接yum安装go、git。yum install -y epel-release yum install -y golanggo version #centos7.6默认版本1.13git --version  #centos7.6默认版本1.8.3.1安装gitwget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.28.0.tar.gztar -zxvf git-2.28.0.tar.gz -C /opt/ && cd /opt/git-2.28.0/编译:./configuremake prefix=/usr/local all安装到/usr/local/bin :make prefix=/usr/local install验证git版本:ln -s /usr/local/bin/git /usr/bin/git --version 安装gowget https://studygolang.com/dl/golang/go1.14.6.linux-arm64.tar.gz tar -zxvf go1.14.6.linux-arm64.tar.gz -C /usr/local/ln -sf /usr/local/go/bin/{go,gofmt} /usr/bin/go version安装influxdb可以将dep通俗的理解为go语言的依赖管理工具,类似于python中的pip,java中的Maven以及node.js中的npm工具通过以下命令来安装depgo get github.com/golang/dep/cmd/depgo get github.com/influxdata/influxdb#若出现类似下图错误,由网络问题导致cd /root/go/src/mkdir -p golang.org/x/cd golang.org/x/git clone https://github.com/golang/xerrors.git###########################################################################cd /root/go/src/github.com/influxdata/influxdbgit checkout 1.8git pull vim build.py #将521、522行注释或删除python build.py如果您使用的 Go 版本是 1.13 及以上 (推荐):go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.io,direct如果您使用的 Go 版本是 1.12 及以下:# 启用 Go Modules 功能export GO111MODULE=on# 配置 GOPROXY 环境变量export GOPROXY=https://goproxy.io############################################################安装成功后,指令存放在./build目录下