• [技术干货] 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         
  • [主机安全] 【漏洞预警】Expat Amazon Linux AMI 命令注入漏洞(CVE-2022-23852)
    漏洞描述:Amazon Linux AMI 是由Amazon Web Services 提供的受支持和维护的 Linux 映像,用于 Amazon Elastic Compute Cloud (Amazon EC2)。它旨在为 Amazon EC2 上运行的应用程序提供稳定、安全和高性能的执行环境。它支持最新的EC2 实例类型功能,并包含能够轻松与 AWS 集成的软件包。根据最新公布的漏洞详情,Expat(又名libexpat)在XML_GetBuffer 中有一个符号整数溢出问题,用于具有非零 XML_CONTEXT_BYTES 的配置。攻击者可利用XML _GetBuffer中的整数溢出的问题,通过将特制数据传递给应用程序,从而触发整数溢出,导致在目标系统上执行任意代码。漏洞危害:该漏洞允许远程攻击者在目标系统上执行任意代码。维持或提升现有特权。恶意代码的传播与破坏可盗用用户或者进程的合法权限。使得攻击者在用户运行应用程序时执行恶意程序,并控制这个受影响的系统。影响范围:Expat Amazon Linux AMI= 2017.03漏洞等级:中危修复方案:厂商已发布升级修复漏洞,用户请尽快更新至安全版本。补丁名称:Expat Amazon Linux AMI 命令注入漏洞补丁补丁链接:https://alas.aws.amazon.com/cve/html/CVE-2022-23852.html
  • [问题求助] 请求增加 RockyLinux镜像源
    请求增加 RockyLinux镜像源,原CentOS Linux官方已经停止维护
  • [技术干货] 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              
  • [技术干货] 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
  • [问题求助] 申请mirror 企业级社区操作系统 Circle Linux
    项目名称与简介 (Project introduction)名称: CircleLinux介绍如下:Circle Linux 是国际化社区驱动的开源软件,使命在与努力专注于围绕 Linux 平台提供更强大的开源生态。提供企业级、生产环境就绪的 Linux 发行版。Global Community-driven Opensource software effort focus on delivering a robust open source ecosystem around a Linux platform.bring you Enterprise-grade, Production-ready Linux Distro.官网:www.cclinux.orgGitHub:https://github.com/circle-linux上游地址与镜像方法 (How to mirror)rsync -avh rsync://msync.cclinux.org/circle/pub/ . 镜像大小 (Mirror size)目前是400G,建议预留,随着全新版本的发布容量随之可能会到600G左右。备注 (Note)非常感谢你们提供的镜像服务,希望可以早日使用华为mirrors 提供的CircleLinux的Mirror 。Best Regards !
  • [openEuler] 打开kernel的page_owner选项查看内存页分配
    1. 开启pageowner功能1.1 下载对应版本内核源码uname –a 查看对应内核的version-release方式一:下载 https://gitee.com/openeuler/kernel源码并切换到对应tag方式二:下载对应版本号的src.rpm可 配置source repo:dnf download –source 下载对应src.rpm也可通过wget 对应repo源的软件包地址,openEuler-20.03-LTS-SP1的源码包路径如下:https://repo.openeuler.org/openEuler-20.03-LTS-SP1/source/Packages/https://mirrors.huaweicloud.com/openeuler/openEuler-20.03-LTS-SP1/source/Packages/ 1.2 开启page_owner选项构建软件包以下均以arm架构下下载src.rpm的形式为例安装src.rpmrpm –ivh  kernel-xxxxx.src.rpmcd /root/rpmbuild/SPECSdnf builddep kernel.speccd /root/rpmbuild/SOURCEStar –zxvf kernel.tar.gz (如果没安装tar dnf install tar)cd kernelmake menuconfig键入/  进入搜索界面搜索 page_owner 回车确认键入1  进入配置界面键入Y  选中page_owner选项然后退出grep –rn “PAGE_OWNER” .config 查看选项是否生效使用以下命令构建export INSTALL_MOD_STRIP=1make binrpm-pkg -j200 生成的rpm存放在/root/rpmbuild/RPMS/$basearch/下kernel-xxxx.rpmkernel-headers-xxxx.rpm该软件包的release为空和社区下载的名字明显不同,后面区分grub选项用1.3 获取page_owner数据安装kernel rpm包(只需要安装主包)rpm –ivh –force kernel-xxxxx.rpm 确认grub的菜单是否存在新内核在新的启动项后增加page_owner=on选项以上操作均可以在/boot目录下的grub.cfg或/etc/grub2.cfg中确认2. 获取page_owner数据2.1重启统计page_ownercd /root/rpmbuild/SOURCES/kernel/tools/vmmake –jcat /sys/kernel/debug/page_owner > page_owner_full.txtgrep –v ^PFN page_owner_full.txt > page_owner.txt./page_owner_sort page_owner.txt sorted_page_owner.txt2.2 计算page_owner数据总值最终查看sorted_page_owner.txt文件其中每块数据首行“ times:”前的数据为申请的次数:第二行order后的数据为申请的page数量,结果为2^n个page页大小根据 getconf PAGESIZE或getconf PAGE_SIZE查看最终启动后内存占用总量为 (∑(<times> * 2 ^ <order>)) * <page_size>2.3 简单的计算脚本如下:FILE_NAME = "sorted_page_owner.txt" # 根据获取的page_owenr结果文件位置修改 PAGE_SIZE = 4028 # 根据getconf PAGESIZE或getconf PAGE_SIZE的结果进行修改 def main(fn): result = 0 with open(fn, "r") as f: times = 0 order = 0 for line in f: if " times:" in line: times = int(line.split(" ")[0]) if "order" in line and times > 0: try: line = line.replace(",", "") order = int(line.split(" ")[4]) result += times * int(pow(2, order)) print("times: [{}], order: [{}], result: [{}]".format(times, order, result)) except Exception as e: print(e) finally: times = 0 order = 0 return result if __name__ == "__main__": result = main(FILE_NAME) print("sum: {}M".format((result * PAGE_SIZE / 1024 / 1024)))  
  • [openEuler] openEuler ISO自行构建流程(在iso中添加rpm包)
    此处以openEuler 20.03LTS SP3 x86_64的iso为例1. 下载openEuler SP3 x86_64的isocid:link_0 2. 创建以下目录供后续步骤使用mkdir -p /mnt/cdrom /mnt/openEuler_file 3. 本地挂载isomount -o loop /mnt/openEuler-20.03-LTS-SP3-x86_64-dvd.iso /mnt/cdrom 4. 将/mnt/cdrom目录下的文件全部拷贝到/mnt/openEuler_file目录下cp -r /mnt/cdrom/* /mnt/openEuler_file/cp /mnt/cdrom/.discinfo /mnt/openEuler_file/cp /mnt/cdrom/.treeinfo /mnt/openEuler_file/ 5. 从openEuler的软件所仓库下载megaraid_sas的驱动rpm包,放置在/mnt/openEuler_file/Packages目录下此处以megaraid_sas.rpm包为例,如果要在iso中添加其他rpm包,请记得将rpm包的安装依赖和编译依赖软件包都同时引入。x86_64驱动:wget -P /mnt/openEuler_file/Packages  https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS/contrib/drivers/x86_64/Packages/kmod-megaraid_sas-07.714.04.00-x86_64.rpmaarch64驱动:wget -P /mnt/openEuler_file/Packages  https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS/contrib/drivers/aarch64/Packages/kmod-megaraid_sas-07.714.04.00-aarch64.rpm6. 修改/mnt/ openEuler_file /repodata/normal.xml文件,在最小化安装的core分组里增加软件包vi /mnt/openEuler_file/repodata/normal.xml在下添加以下信息:kmod-megaraid_sas 7. 使用createrepo命令createrepo -g /mnt/openEuler_file/repodata/normal.xml /mnt/openEuler_file/ 8. 安装genisoimage软件dnf install -y genisoimage 9. 使用mkisofs命令制作iso如果制作x86_64架构的iso,执行命令请参考:mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V openEuler-20.03-LTS-SP3-x86_64 -o /opt/openEuler-20.03-LTS-SP3-x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table  -eltorito-alt-boot -e images/efiboot.img -no-emul-boot ./如果制作aarch64架构的iso,执行命令请参考: mkisofs -R -J -T -r -l -d -joliet-long -allow-multidot -allow-leading-dots -no-bak -V openEuler-20.03-LTS-SP3-aarch64 -o /opt/openEuler-20.03-LTS-SP3-aarch64.iso -e images/efiboot.img -no-emul-boot ./10. ISO制作完成,可以进行安装使用
  • openEuler 内核编译安装
    1. 下载内核源码dnf install -y kernel-source 2. 下载编译源码的依赖软件包dnf install -y rpm-build openssl-devel bc rsync gcc gcc-c++ flex bison m4 elfutils-libelf-devel 3. 如果需要向内核合入patch,请从官网下载对应的patch文件,执行以下命令将patch合入内核源码patch -d /usr/src/ linux-4.19.90-2202.1.0.0136.oe1.x86_64 -p1 < patch_file4. 进入linux源码主目录cd /usr/src/linux-4.19.90-2202.1.0.0136.oe1.x86_64/5. 修改内核的版本号,Makefile的前4个参数和版本号相关,可进行修改,修改的版本号需要比当前系统使用的内核版本号高,否则无法进行安装vi Makefile 6. 编译config文件make openeuler_defconfig(如果需要修改config文件,该文件在/usr/src/linux-4.19.90-2202.1.0.0136.oe1.x86_64/arch/x86/config 目录下) 7. 编译内核make binrpm-pkg -j{num}-j参数表示指定多线程编译,最大线程数量为CPU核数。8. 编译完成后查看对应目录下生成的内核rpm包。ll root/rpmbuild/RPMS/x86_64 9. 安装内核rpm -ivh /root/rpmbuild/RPMS/x86_64/kernel-4.19.91-1.x86_64.rpm10. 查看安装完成的内核rpm -qa | grep kernel 11. 重启机器,在进入内核选择页面时,选择编译安装的内核 12. 查看当前系统的内核版本uname -r13. 执行以下命令可以单独编译内核驱动make ARCH=x86_64 CONFIG_IGC=m drivers/net/ethernet/intel/igc/igc.ko
  • [技术干货] 【故障注入第十七期】Linux OS相关故障-进程
    今天周五啦,掐指一算,好久没更新帖子了,今天继续我们上一期的话题,使用DemonCAT,如何注入Linux OS进程方面的故障呢,我们一起来看下吧!进程异常退出进程/线程死循环 进程/线程D状态进程挂起线程挂起进程Z状态线程数过多进程句柄数耗尽线程异常退出进程数过多进程页表数据被踩进程内存泄漏(分配)内核线程R死锁内核进程死锁进程内存数据被踩停止进程定时器进程内存泄漏(malloc)DemonCAT关于Linux OS 注入进程故障方面的内容就先介绍到这,当然如果有关于任何章节感兴趣的伙伴,欢迎留言或联系我们,下一期,向大家介绍文件系统方面的故障内容,尽情期待~
  • [知识分享] 应用数仓ODBC前,这些问题你需要先了解一下
    本文分享自华为云社区《[GaussDB(DWS) ODBC 问题定位指南](https://bbs.huaweicloud.com/blogs/334926?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=ei&utm_content=content)》,作者: power_gouge 。 用户的应用程序,调用的ODBC的API,其实是由驱动管理器提供的,这个驱动管理器在微软上就是odbcad32(.exe/.dll),在Linux上就是UnixODBC。再由它们来调用ODBC的具体驱动(Gauss、Oracle、TD……)。 所以一般问题基本会出在以下几个方面: - 应用加载驱动管理器 - 驱动管理器加载驱动 - 驱动连接数据库 一个典型的用户应用程序如下: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/4/1646357586860120681.png) # 问题处理 ## 应用程序加载驱动管理器失败 **Windows** Windows由于操作系统实现机制的问题,ODBC属于操作系统组件的一部分,除非操作系统损坏,一般不会出现应用程序加载驱动管理器失败;只会出现驱动管理器加载驱动失败。所以这里不再赘述。 **Linux** Linux上应用程序加载驱动管理器,是指的应用程序依赖于UnixODBC的相关动态库,启动时要将其加载到自己的进程空间中。加载出现问题多表现为在启动时找不到libodbc.so.x/libodbcinst.so.x等库。 解决此问题: 首先确认环境中是否安装了UnixODBC。如果安装了,那么至少会有isql/odbcinst等工具可用。例如可使用which isql这样的命令来确定安装路径。相关的lib库一般会在which isql指定的bin目录的同级目录下,将其添加到LD_LIBRARY_PATH中重启应用程序便可。 export LD_LIBRARY_PATH=/where/unixodbc/installed/lib:$LD_LIBRARY_PATH 特别注意,此语句只影响**当前shell**会话中的后续命令,其他会话不受影响,特别是后台启动的进程。如果是后台进程,请与应用程序的开发人员确认其运行环境如果修正。 如果确认LD_LIBRARY_PATH已经生效(可以打开/proc/应用程序pid/environ文件确认),依然无法加载libodbc.so.x/libodbcinst.so.x,那么可能是.1或者.2的库的问题。 历史原因,一般的开发环境中,UnixODBC提供的库既可能叫libodbc.so.1也可能叫libodbc.so.2。用户程序可能依赖了.2,但是环境中只有.1;也有可能是存在.2,但是依赖了.1。 解决此问题,只需要在UnixODBC的lib目录下,将不存在的版本建立成软链接,保证.1与.2都存在,这样出问题的机率便会小很多。特别注意,这里强烈建议是建立软链接,而不要拷贝物理文件,不然可能出现一个应用程序进程中,加载了两个导出函数完全相同的.so,这样可能会引起一些比较难定位的启动错误,后文中会讲到。 ## 驱动管理器加载驱动失败 **Windows** 最常见x86与x64架构不同导致的加载失败;此问题的典型报错为: 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 此问题可能的原因:在64位程序中使用了32位驱动,或者相反。 在64位系统上: C:\Windows\SysWOW64\odbcad32.exe:这是32位ODBC驱动管理器。 C:\Windows\System32\odbcad32.exe:这是64位ODBC驱动管理器。 **使用不同架构的应用程序时,请使用不同的驱动管理器;同时安装不同的驱动类型。** 32位系统上只能跑32位程序,也无法安装64位驱动,所以基本不用区分。 如果是64位系统,那么它既支持32位程序,也支持64位程序;如果不能确定应用程序是32还是64,可以使用以下办法: ctrl + shift + esc 打开任务管理器 查看进程列表中某进程后边有没有*32的字样(有就是32位,没有就是64位),如下图:\ ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/4/1646357652067122958.png) **Linux** **环境中缺少psqlodbcw.so的库** 一般这个问题的报错是 [UnixODBC][Driver Manager]Can't open lib 'xxx/xxx/psqlodbcw.so' : file not found. 可能的原因有: odbcinst.ini中配置的路径不正确,最简单的办法是 ls -l 一下这个报错的文件,看看这个是不是真的存在,同时具有执行权限。 依赖的库不存在,此时最简单的办法是ldd 一下这个报错的文件,看看是不是真的缺少库,如果缺少库会出现如下问题: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/4/1646357683855242650.png) 要处理这个问题,需要将unixodbc的安装目录下的lib,添加到LD_LIBRARY_PATH里,例如: export LD_LIBRARY_PATH=/where/unixodbc/installed/lib:$LD_LIBRARY_PATH 同时,在UnixODBC的安装的lib目录下,看看libodbcinst.so.x后边的后缀是.1还是.2。如果是.2,那么请建立一个软链接,链接到.1,便可以解决此问题。 如果该目录下只有.1的库,没有.2的库,也建议建立一个.2的软链接,防止应用程序依赖于.2,我们依赖于.1,引起冲突。 特别注意,当前会话的LD_LIBRARY_PATH不代表应用程序运行时也是同样的LD_LIBRARY_PATH,必要的时候,与应用程序开发人员对齐。 如果是常驻进程,可以通过如下方法获取到当前进程的环境变量: cd /proc/应用程序PID cat environ 打印出来的结果可能比较乱,耐心看一下;如果内容有误,与应用程序开发人员对齐修改方法。 **既有.2又有.1的库,导致重复加载** 这种勤快的用户比较少见,但是一旦出现,很难定位,典型的报错信息是: Driver's SQLAllocHandle on SQL_HANDLE_DBC failed 这种情况这时应用与驱动加载的是不同的物理文件,便会导致两套完全同名的函数列表,同时出现在同一个可见域里(UnixODBC的libodbc.so.*的函数导出列表完全一致),产生冲突,无法加载数据库驱动。 解决此问题的办法也比较简单,查看LD_LIBRARY_PATH中的第一个unixodbc的lib目录。在其目录下,缺少.2或.1,建立对应的.2或.1的软链接便可。 # 连接问题 ## 服务器不可达 典型报错: connect to server failed: no such file or directory 此问题可能的原因: 配置了错误的/不可达的数据库地址,或者端口 请检查数据源配置中的Servername及Port配置项,确认网络是通达的。 服务器监听不正确 如果确认Servername及Port配置正确,请根据资料中listen_addresses参数的配置方法,确保数据库监听了合适的网卡及端口,特别是Servername中指定的网卡地址及LVS的虚拟IP地址。 **修改完记得重启数据库,使监听生效。** 防火墙及网闸、流控设备 请确认防火墙设置,将数据库的通信端口添加到可信端口中。 如果有网闸、流控设备,请确认一下相关的设置。 此问题一般都是第三方商业产品导致,需要咨询服务/产品提供商相关的策略。 **SSL配置不正确** 典型报错1: The password-stored method is not supported. 解决办法1: 请将数据源配置中的的sslmode调整至allow及以上级别,允许使用SSL连接。 典型报错2: Server common name "xxxx" does not match host name "xxxxx" 此问题是由于sslmode中使用了全校验(verify-full),它不仅会校验证书,还会校验证书所在的域名/机器名是否与证书符合,不符合时将报出此问题。 解决办法2: 重新让CA机构以新的域名/机器名签发证书;或者将SSLMODE调整至verify-ca选项或其以下级别(具体级别见产品资料中的说明)。 **使用开源驱动连接问题** 我们的数据库是支持低版本及开源驱动的(V1R7C10及以后),所以可以放心使用。 但是偶尔一些从V1R6C10升级上来的数据库,接受开源驱动连接时,会碰到用户认证算法不支持的问题,典型报错如下: authentication method 10 not supported. 此问题机理比较复杂,下面详细展开,先说解决办法: 请使用管理新账号新建一个数据库的用户,并给予其相关的访问权限,使用新用户连接数据库。 更改当前业务用户的密码,使用新密码连接数据库。 解释一下此问题发生的机理: 我们的数据库在连接时,是会让客户端将认证信息发过来的。但是发过来的信息不会是明文密码,这是不安全的;客户端发到数据库的认证信息一般是经过加盐后的密码哈希(md5/sha256算法),迭代次数也非常多。 数据库本身也并不存储用户的明文密码,存储的是一个哈希值(所以密码要是丢了,就真的丢了,只能重置不能找回)。数据库在校验这个密码的时候,是比较哈希的,这就涉及到数据库中存储的哈希是使用的什么算法得到的哈希值,常见的是sha256(高斯自研)及MD5(开源)。 V1R7C00及以前,数据库中只存储了SHA256的哈希,升级时我们也无法推导用户原有密码,所以升级后仍然只有SHA256的哈希;但是开源客户端只识别MD5的哈希,这就导致数据库无法认证;数据库也只会让客户端以SHA256的哈希来做认证,这时开源就不识别该认证请求,导致报出如上的错误。 在创建用户和修改用户密码时,我们的新版本会同时记录两份哈希,所以后续将会同时支持开源及自研的各个版本。 **因数据源配置不正确,导致的连接错误** 典型报错: Data source name not found, and no default driver specified 可能原因: 数据源名称书写错误(或含有特殊符号) 不同的操作系统用户下,数据源可见性不一样; Linux上的数据源配置文件(odbc.ini)位置不正确 解决办法: 修正数据源名称. Windows下,请在当前用户下打开驱动管理器,查看数据源配置是否正确。 请注意在64位系统上使用正确的数据源管理器: C:\Windows\SysWOW64\odbcad32.exe:这是32位ODBC驱动管理器。 C:\Windows\System32\odbcad32.exe:这是64位ODBC驱动管理器。 Linux下使用odbcinst -j 命令,查看当前环境中配置文件的正确路径,输出一般如下: unixODBC 2.3.0 DRIVERS............: /usr/local/etc/odbcinst.ini/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbcinst.ini/odbc.ini FILE DATA SOURCES..: /usr/local/etc/odbcinst.ini/ODBCDataSources USER DATA SOURCES..: /usr/local/etc/odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 其中USER DATA SOURCES就是用户数据源,优先生效;SYSTEM DATA SOURCES是系统数据源,整个系统可用。请针对这些文件路径, 注意:有时用户数据源的配置文件可能是$(HOME)/.odbc.ini **通信协议不匹配问题** 典型报错: unsupported frontend protocol 3.51: server supports 1.0 to 3.0 可能原因: 使用了新版本的数据库驱动连接老版本的数据库(V1R6C10); 或者使用了我们的驱动,连接到了开源的数据库上。 解决办法: 请使用老版本的数据库驱动连接该数据库。 我们的数据库中,默认低版本客户端可以连接高版本数据库;使用高版本驱动连接低版本客户端,不在规格约束范围内。 这个规格也比较好理解:因为用户一般是对数据库集中管理,升级也是有计划的。但是客户端驱动可能嵌入到业务中的每一个角落,有时甚至是已经发布的装备中,升级相对比较困难。 如果是开源服务器:我们的数据库驱动不支持开源数据库,无法连接;请使用开源客户端连接。 # 其他常见疑问 **与开源的区别?** 增加了安全性,使用了SHA256算法做认证加密;同时调整密钥哈希加密次数 提升了批量性能(V1R7C10 2019-4-30及以后版本) **是否可以增加新API?** 不可以。 还是基础知识里那张图,用户引用的API是由驱动管理器提供的,我们提供的API只可供驱动管理器使用;新增API无法穿过中间层为用户提供服务。 **是否支持COPY接口?** Copy是PG的特有语法及通信协议;而ODBC是微软提出的通用调用接口,所以无此特殊接口。 Linux上的驱动管理器有哪些? 驱动管理器在Linux上并不是操作系统的一部分,它也是由其他开源组织开发的。所以并不是只有UnixODBC一种。但是目前使用最广泛的,其实只有UnixODBC,多数据操作系统安装时基本都已经自带了UnixODBC的某个特定版本;除此之外,还有iODBC等,现在已经慢慢退出市场了。 **UnixODBC的版本有限制么?** 有。我们支持2.3.0及以上版本。 **UnixODBC的.1与.2的库有什么区别?** 没有什么区别。 这个与UnixODBC的历史有关,历史上有一段时间提供.1,后来做了一次大升级,动态库版本也跟着升级了,变成了.2。但是一大批存量业务受制无法运行,就又添加了.1的支持。 .1与.2其实只是UnixODBC的configure配置的一部分,其函数导出,功能完全一致,不必纠结于此。 **可以打印日志么?** 可以。 一般建议打印驱动管理器的日志,此日志比较清晰,定位问题比较快。操作办法: Windows上: 打开驱动管理器,调整到跟踪页面,确定日志文件路径后,点击开始跟踪便可,如图: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/4/1646357838653265115.png) Linux上: 打开odbcinst.ini文件(可使用odbcinst -j 来确定文件路径),添加以下章节: [ODBC] Trace=Yes TraceFIle=/tmp/odbc.log 重启业务便可。 注意:非必要时,请关闭日志,因为每个API都存在写盘,将会引起性能损失。 **查询结果集过大,内存吃不消怎么办?** 打开UseDclareFetch开关,它将会把查询包装成游标操作。对于不支持Cursor with hold的版本慎用。同时由于使用了服务器端的游标,游标的前后滚操作也会反馈给数据库,通信会有所增加,所以性能会有部分下降;可以通过调整Fetch参数来确定每次数据库向客户端反馈的数据量大小,来降低该性能影响。 Linux下打开UseDeclareFetch的方法: 在数据源配置项中添加: UseDeclareFetch=1 Fetch=1000 Windows下打开UseDeclareFetch的方法: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20223/4/1646357891666462485.png) 其中的Cache Size选项,就是Fetch的大小。 **有性能基线数据么?** 创建连接的性能大体为0.5s内都算正常(一般0.3s左右) 数据插入的话 非批量版本(R7C10以及前)大约为400tps(SSD的测试结果) 批量版本(R8C10及以后)大约为4000tps(SSD服务器),由于数据库对象差异、网络、物理硬件等,基本2000tps以上都可以认为是正常 **语句出错怎么排查?** 运行过程中出错,ODBC是不会打屏的。错误信息需要业务里获取错误信息(API为:SQLGetDiagField/SQLGetDiagRec)。 如果用户的业务里有打印具体的错误信息,或者业务的错误信息不足以定位,请根据3.7中的描述,将ODBC的日志打印出来,在其中找SQL_ERROR相关信息。这里最好能和业务开发人员一起定位,因为API的调用序列是乱序的,由业务决定。 如果ODBC的日志仍然不足以定位支撑,请登录到连接的目标CN所在的机器,通过以下方法进入CN日志文件目录: source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile cd $GAUSSLOG/pg_log/cn_50xx #这里的cn_50xx表示CN编号,根据实际情况修改 找到对应时间点的日志,观察其中是否有错误信息。 **我们与Oracle/MYSQL的ODBC有什么关系** ODBC是一套标准,每家数据库提供自己的驱动文件。就像大家都叫显卡,每个厂商也都提供自己的驱动,自己的驱动只能驱动自己的显卡;而显卡的接口标准是微软(ODBC也是微软)制定的,只是大家不接触,不知道有这样一套标准而已。 我们的驱动文件叫psqlodbcw.so/psqlodbcw.dll。 **支持GBK么?** 支持。 但是我们ODBC驱动默认使用utf-8编码。如果要调整,需要自行在会话开始时设置client_encoding。 但是请注意,请不要在宽字节模式下使用GBK,因为宽字节编码本身就是UNICODE的一部分(一般为UCS2),此时使用GBK可能导致数据无法显示,SQL查询结果不正确等问题。 如果出现此问题,请将VS中的解决方案字符集调整为“多字节”。
  • [优秀实践] HPC软件迁移openEuler平台项目心得感受
           这个项目是我来到学校后第一次参加的项目,也是第一次很深程度的参加Linux相关的项目,之前在大学里头虽然也学过相关的课程,但是都浅尝辄止,并没有深入的去学习,实践过。这次实践不仅让我学习了Linux相关的知识和经验,提高了自身的知识水平,并且也对华为的工作有了更深的认知。       项目的内容主要是从X86平台向openEuler系统上进行HPC软件的移植,移植总共有6款软件nemo、QE、Gromacs、CP2K、CESM、Lammps,都是属于HPC软件。移植过程一开始来说对我来说是我有些艰难的,因为对我来说,Linux并不是主要的使用系统,相关的移植过程也知之甚少,但随着项目的进展,在老师,师兄师姐的帮助下,我也学习了很多,扩展了自己的知识面,了解了相关的信息和如何使用它们。比如鲲鹏920芯片,鲲鹏移植工具,毕昇编译器,HyperMPI等等。我认为在这期间,不仅是技术和知识方面的提高,更重要的是一种学习能力的提高。在今后的学习中,总会有很多未知的东西,这时候就要保持一定的自学能力和主观性,这样在面对新知识的时候,才能不手忙脚乱。       OpenEuler系统是华为生态系统重要的一环,迁移的这几款HPC软件也是科研界常用的那几款软件,两者相结合是可以丰富华为的一个生态圈,华为公司现在开发了大量的硬件资源供大家使用,但同时也要有相应的软件生态环境与之适配,这样子才能算是相得益彰,因为对于一个公司,一个国家来说,有一个自己独立研发的平台是十分重要的,这样子才可以避免有一天当遭遇危机时,出现技术封锁和强制干涉时,一筹莫展的困境。       作为一个小小的开发者,我也十分有幸跟随老师,师兄师姐们参与到与华为合作的这次项目,这不仅使我自己从以前的一种较为狭窄的角度中走出来,更提高了我的能力,丰富了我的知识面,加深了对Linux系统的使用和认知。在与华为的合作中,十分愉快,无论是交接还是讨论,我们都能顺利并且有效的解决问题和开展工作,也对华为的这种开放心态十分佩服,鲲鹏众智计划的开展表明了华为的这种构建自身生态的信心和决心,一种独立自主的精神。总而言之,这次项目实践,真的让我明悟了许多,使我受益匪浅。                                                                                                                             兰州大学-高性能计算系统与应用研究团队-李沛桢                                                                                                                             指导老师:张洋老师,陈文波老师
  • [HPC] ExaGear二进制转码工具 安装验证pcgr
    1 介绍Personal Cancer Genome Reporter (PCGR) 是一个独立的软件包,用于为精准癌症医学对单个癌症基因组进行功能注释和翻译。目前,它可以解释体细胞 SNV/InDels 和拷贝数畸变。该软件扩展了Ensembl 的变异效应预测器 (VEP) 中的基本基因和变异注释,并通过vcfanno灵活检索了与肿瘤学相关的最新注释,并生成用于临床解释的交互式 HTML 报告。语言:R、Python一句话描述:用于为精准癌症医学对单个癌症基因组进行功能注释和翻译。建议的版本建议使用版本为“pcgr 0.9.2”。2 环境要求硬件要求硬件要求如表2-1所示。表2-1 硬件要求项目说明CPUKunpeng 920GPUNVIDIA Tesla A100 软件要求软件要求如表2-2所示。表2-2 软件要求项目版本下载地址pcgr0.9.2https://github.com/sigven/pcgr/releases/tag/v0.9.2docker20.10.11 python3.6.8https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgzExagear1.2.1.1https://mirrors.huaweicloud.com/kunpeng/archive/ExaGear/ExaGear_1.2.1.1.tar.gz 操作系统要求操作系统要求如表2-3所示。表2-3 操作系统要求项目版本下载地址CentOS8.2https://www.centos.org/download/Kernel4.18.0-193.el8.aarch64https://www.centos.org/download/3 移植规划数据本章节给出pcgr软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。表3-1 移植规划数据序号软件安装规划路径用途说明1-基础环境搭建中的各安装包安装路径。参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章节。2/path/to/pcgrpcgr的安装规划路径。这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。3/path/to/PYTHON3Python3的安装规划路径。4 配置编译环境前提条件使用SFTP工具将各安装包上传至服务器对应目录下。配置流程表4-1 配置流程序号配置项说明1基础环境搭建参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章节。2修改PAGE_SIZE参考4.1修改PAGE_SIZE为4KB3安装docker参考4.2安装docker4安装python3参考4.3安装python35安装Exagear for docker参考4.4安装Exagear for docker 4.1 修改PAGE_SIZE为4KB操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令创建工作组。groupadd mockbuilduseradd mockbuild -g mockbuild                                步骤 3     执行以下命令下载包。wget https://vault.centos.org/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm                                步骤 4     安装相关依赖。yum install -y xmlto asciidoc newt-devel pciutils-develyum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto –yyum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel –yyum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel -y                                步骤 5     安装rpm包。rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm注:安装完成后rpm构建工程自动部署在/root/rpmbuild/SPECS/root/rpmbuild/SOURCES                                步骤 6     rpmbuild 构建。cd /root/rpmbuild/SPECSrpmbuild -bp --target=$(uname -m) kernel-alt.speccd /root/rpmbuild/BUILD/kernel-alt-4.14.0-115.el7a/linux-4.14.0-115.el7.0.1.aarch64(以实际路径为准)make menuconfig选择Kernel Features-->Page size (64KB)--> Page size (4KB) 保存 #Page size调整为4K。make -j 64make modules_installmake install                                步骤 7     重启机器,进入iBMC选择对应的内核进入系统。                                步骤 8     验证是否修改成功。getconf PAGE_SIZE回显信息为:4096----结束4.2 安装docker操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载yum-utils包。yum install -y yum-utils                                步骤 3     执行以下命令添加docker储存库。yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo注:若由于证书原因添加不成功,可在/etc/yum.conf文件中加上“sslverify=false”后再添加                                步骤 4     执行以下命令安装docker。yum install docker-ce docker-ce-cli containerd.io                                步骤 5     执行以下命令启动docker。systemctl start docker                                步骤 6     通过运行hello-world 映像验证 Docker Engine 是否已正确安装。docker run hello-world回显信息如下:----结束4.3 安装python3操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载python3.6.8。wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz                                步骤 3     执行以下命令解压安装包。tar xvf Python-3.6.8.tgz                                步骤 4     执行以下命令进入解压后目录。cd Python-3.6.8                                步骤 5     执行以下命令编译安装Python3。./configure --prefix=/path/to/PYTHON3make -j16make install                                步骤 6     执行以下命令设置Python3的环境变量。export PATH=/path/to/PYTHON3/bin:$PATHexport LD_LIBRARY_PATH=/path/to/PYTHON3/lib:$LD_LIBRARY_PATH                                步骤 7     验证Python3环境是否生效。python3 -V----结束4.4 安装Exagear for docker操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载Exagear安装包。wget https://mirrors.huaweicloud.com/kunpeng/archive/ExaGear/ExaGear_1.2.1.1.tar.gz                                步骤 3     执行以下命令解压安装包。tar xvf ExaGear_1.2.1.1.tar.gz                                步骤 4     安装ExaGear for Docker on CentOS with 4KB该发布件由三个包组成:exagear-core-x64a64-container-<package_version>.aarch64.rpmexagear-core-x32a64-container-<package_version>.aarch64.rpmexagear-utils-<package_version>.noarch.rpm.使用rpm包管理工具yum install完成发布件在ARM64 主机环境下的安装:(注意需要输入对应的版本package_version)yum install exagear-core-x64a64-container-<package_version>.aarch64.rpm exagear-core-x32a64-container-<package_version>.aarch64.rpm exagear-utils-<package_version>.noarch.rpm                                步骤 5     制作X86容器的pcgr镜像。下载x86容器镜像到x86系统上,并将其拷贝到你将要用ExaGear运行容器的ARM64主机系统,在安装有docker的x86机器上进行如下操作:docker pull sigven/pcgr:0.9.2 && docker save sigven/pcgr:0.9.2 > docker-pcgr-0.9.2.tar.gz                                步骤 6     将docker-pcgr-0.9.2.tar.gz 拷贝至ARM64主机系统上.。                                步骤 7     将x86容器镜像加载到ARM64主机系统上的ARM64 docker中。docker load < docker-pcgr-0.9.2.tar.gz                                步骤 8     在ARM64主机系统上运行x86 docker容器。docker run sigven/pcgr:0.9.2----结束 5 获取源码操作步骤                                步骤 1     下载pcgr安装包“pcgr-0.9.2.tar.gz”。下载地址:https://github.com/sigven/pcgr/releases/tag/v0.9.2                                步骤 2     下载pcgr数据包“pcgr.databundle.grch37.20210627.tgz”、“pcgr.databundle.grch38.20210627.tgz”。下载地址:http://insilico.hpc.uio.no/pcgr/pcgr.databundle.grch37.20210627.tgz下载地址:http://insilico.hpc.uio.no/pcgr/pcgr.databundle.grch38.20210627.tgz                                步骤 3     使用SFTP工具将安装包和数据包上传至服务器“/path/to/pcgr”目录。----结束6 编译和安装操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令解压pcgr安装包。tar xvf pcgr-0.9.2.tar.gz                                步骤 3     执行以下命令解压pcgr数据包。tar xvf pcgr.databundle.grch37.20210627.tgztar xvf pcgr.databundle.grch38.20210627.tgz                                步骤 4     执行以下命令进入解压后pcgr主程序目录。cd pcgr-0.9.2                                步骤 5     执行以下命令将数据包目录移动到主程序目录。mv ../date .----结束7 运行和验证操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令创建报告生成目录:mkdir /path/to/output                                步骤 3     执行以下命令运行测试:python3 pcgr.py --pcgr_dir /path/to/pcgr/pcgr-0.9.2 --output_dir /path/to/pcgr/output --sample_id tumor_samplr.BRCA --genome_assembly grch37 --input_vcf /path/to/pcgr/pcgr-0.9.2/examples/tumor_sample.BRCA.vcf.gz验证结果:回显信息如下最后查看output文件夹有相关报告生成----结束8 更多资源pcgr-github官网:https://github.com/sigven/pcgr
  • [HPC] ExaGear二进制转码工具 安装验证pcgr
    1 介绍Personal Cancer Genome Reporter (PCGR) 是一个独立的软件包,用于为精准癌症医学对单个癌症基因组进行功能注释和翻译。目前,它可以解释体细胞 SNV/InDels 和拷贝数畸变。该软件扩展了Ensembl 的变异效应预测器 (VEP) 中的基本基因和变异注释,并通过vcfanno灵活检索了与肿瘤学相关的最新注释,并生成用于临床解释的交互式 HTML 报告。语言:R、Python一句话描述:用于为精准癌症医学对单个癌症基因组进行功能注释和翻译。建议的版本建议使用版本为“pcgr 0.9.2”。2 环境要求硬件要求硬件要求如表2-1所示。表2-1 硬件要求项目说明CPUKunpeng 920GPUNVIDIA Tesla A100 软件要求软件要求如表2-2所示。表2-2 软件要求项目版本下载地址pcgr0.9.2https://github.com/sigven/pcgr/releases/tag/v0.9.2docker20.10.11 python3.6.8https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgzExagear1.2.1.1https://mirrors.huaweicloud.com/kunpeng/archive/ExaGear/ExaGear_1.2.1.1.tar.gz 操作系统要求操作系统要求如表2-3所示。表2-3 操作系统要求项目版本下载地址CentOS8.2https://www.centos.org/download/Kernel4.18.0-193.el8.aarch64https://www.centos.org/download/3 移植规划数据本章节给出pcgr软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。表3-1 移植规划数据序号软件安装规划路径用途说明1-基础环境搭建中的各安装包安装路径。参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章节。2/path/to/pcgrpcgr的安装规划路径。这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。3/path/to/PYTHON3Python3的安装规划路径。4 配置编译环境前提条件使用SFTP工具将各安装包上传至服务器对应目录下。配置流程表4-1 配置流程序号配置项说明1基础环境搭建参考《HPC解决方案 基础环境搭建指导书》中“安装规划数据”章节。2修改PAGE_SIZE参考4.1修改PAGE_SIZE为4KB3安装docker参考4.2安装docker4安装python3参考4.3安装python35安装Exagear for docker参考4.4安装Exagear for docker 4.1 修改PAGE_SIZE为4KB操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令创建工作组。groupadd mockbuilduseradd mockbuild -g mockbuild                                步骤 3     执行以下命令下载包。wget https://vault.centos.org/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm                                步骤 4     安装相关依赖。yum install -y xmlto asciidoc newt-devel pciutils-develyum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto –yyum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel –yyum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel -y                                步骤 5     安装rpm包。rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm注:安装完成后rpm构建工程自动部署在/root/rpmbuild/SPECS/root/rpmbuild/SOURCES                                步骤 6     rpmbuild 构建。cd /root/rpmbuild/SPECSrpmbuild -bp --target=$(uname -m) kernel-alt.speccd /root/rpmbuild/BUILD/kernel-alt-4.14.0-115.el7a/linux-4.14.0-115.el7.0.1.aarch64(以实际路径为准)make menuconfig选择Kernel Features-->Page size (64KB)--> Page size (4KB) 保存 #Page size调整为4K。make -j 64make modules_installmake install                                步骤 7     重启机器,进入iBMC选择对应的内核进入系统。                                步骤 8     验证是否修改成功。getconf PAGE_SIZE回显信息为:4096----结束4.2 安装docker操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载yum-utils包。yum install -y yum-utils                                步骤 3     执行以下命令添加docker储存库。yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo注:若由于证书原因添加不成功,可在/etc/yum.conf文件中加上“sslverify=false”后再添加                                步骤 4     执行以下命令安装docker。yum install docker-ce docker-ce-cli containerd.io                                步骤 5     执行以下命令启动docker。systemctl start docker                                步骤 6     通过运行hello-world 映像验证 Docker Engine 是否已正确安装。docker run hello-world回显信息如下:----结束4.3 安装python3操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载python3.6.8。wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz                                步骤 3     执行以下命令解压安装包。tar xvf Python-3.6.8.tgz                                步骤 4     执行以下命令进入解压后目录。cd Python-3.6.8                                步骤 5     执行以下命令编译安装Python3。./configure --prefix=/path/to/PYTHON3make -j16make install                                步骤 6     执行以下命令设置Python3的环境变量。export PATH=/path/to/PYTHON3/bin:$PATHexport LD_LIBRARY_PATH=/path/to/PYTHON3/lib:$LD_LIBRARY_PATH                                步骤 7     验证Python3环境是否生效。python3 -V----结束4.4 安装Exagear for docker操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令下载Exagear安装包。wget https://mirrors.huaweicloud.com/kunpeng/archive/ExaGear/ExaGear_1.2.1.1.tar.gz                                步骤 3     执行以下命令解压安装包。tar xvf ExaGear_1.2.1.1.tar.gz                                步骤 4     安装ExaGear for Docker on CentOS with 4KB该发布件由三个包组成:exagear-core-x64a64-container-<package_version>.aarch64.rpmexagear-core-x32a64-container-<package_version>.aarch64.rpmexagear-utils-<package_version>.noarch.rpm.使用rpm包管理工具yum install完成发布件在ARM64 主机环境下的安装:(注意需要输入对应的版本package_version)yum install exagear-core-x64a64-container-<package_version>.aarch64.rpm exagear-core-x32a64-container-<package_version>.aarch64.rpm exagear-utils-<package_version>.noarch.rpm                                步骤 5     制作X86容器的pcgr镜像。下载x86容器镜像到x86系统上,并将其拷贝到你将要用ExaGear运行容器的ARM64主机系统,在安装有docker的x86机器上进行如下操作:docker pull sigven/pcgr:0.9.2 && docker save sigven/pcgr:0.9.2 > docker-pcgr-0.9.2.tar.gz                                步骤 6     将docker-pcgr-0.9.2.tar.gz 拷贝至ARM64主机系统上.。                                步骤 7     将x86容器镜像加载到ARM64主机系统上的ARM64 docker中。docker load < docker-pcgr-0.9.2.tar.gz                                步骤 8     在ARM64主机系统上运行x86 docker容器。docker run sigven/pcgr:0.9.2----结束 5 获取源码操作步骤                                步骤 1     下载pcgr安装包“pcgr-0.9.2.tar.gz”。下载地址:https://github.com/sigven/pcgr/releases/tag/v0.9.2                                步骤 2     下载pcgr数据包“pcgr.databundle.grch37.20210627.tgz”、“pcgr.databundle.grch38.20210627.tgz”。下载地址:http://insilico.hpc.uio.no/pcgr/pcgr.databundle.grch37.20210627.tgz下载地址:http://insilico.hpc.uio.no/pcgr/pcgr.databundle.grch38.20210627.tgz                                步骤 3     使用SFTP工具将安装包和数据包上传至服务器“/path/to/pcgr”目录。----结束6 编译和安装操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令解压pcgr安装包。tar xvf pcgr-0.9.2.tar.gz                                步骤 3     执行以下命令解压pcgr数据包。tar xvf pcgr.databundle.grch37.20210627.tgztar xvf pcgr.databundle.grch38.20210627.tgz                                步骤 4     执行以下命令进入解压后pcgr主程序目录。cd pcgr-0.9.2                                步骤 5     执行以下命令将数据包目录移动到主程序目录。mv ../date .----结束7 运行和验证操作步骤                                步骤 1     使用PuTTY工具,以root用户登录服务器。                                步骤 2     执行以下命令创建报告生成目录:mkdir /path/to/output                                步骤 3     执行以下命令运行测试:python3 pcgr.py --pcgr_dir /path/to/pcgr/pcgr-0.9.2 --output_dir /path/to/pcgr/output --sample_id tumor_samplr.BRCA --genome_assembly grch37 --input_vcf /path/to/pcgr/pcgr-0.9.2/examples/tumor_sample.BRCA.vcf.gz验证结果:回显信息如下最后查看output文件夹有相关报告生成----结束8 更多资源pcgr-github官网:https://github.com/sigven/pcgr
总条数:1204 到第 页
上滑加载中