陈炽卉
李松青
基于网络安全考虑,大部分传统客户已经摒弃了 telnet 登录方式,改为 SSH 加密登录方式,数据传输也采用了 scp/sftp 加密传输替代 ftp 之类的明文传输。和其他 OS 一样, AIX 上的 SSH 、 SSL 也是直接来源于开源软件。本文简单介绍了 AIX 环境 OpenSSH 、 OpenSSL 的安装,以及 SCP 性能优化方法,以及 Oracle RAC 19c 安装时遇到的 OpenSSH 的兼容性问题解决方法,供大家参考。
OpenSSH 、 OpenSSL 都是直接来源于开源软件,因此设计原则上,只要是相同 OpenSSH 版本,对不同平台主要功能都是一致的。参考 OpenSSH 的 release note :
http://www.openssh.com/releasenotes.html
最新版的OpenSSH / OpenSSL软件的 AIX 平台版本可以在如下网站下载 :
https://www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=aixbp
注意 OpenSSH 与 OpenSSL 必须配套下载,需参考 README 文件,比如 OpenSSH 7.5 的 README :
…
This is OpenSSH-7.5p1 (VRMF: 7.5.102.1100) for AIX 5.3, 6.1, 7.1 and AIX 7.2.
This version of OpenSSH is compiled with OpenSSL 1.0.2k version. Hence, the required minimum level of openssl fileset installed has to be at :
…
openssl 是基础库,必须首先更新 openssl ,再更新 openssh :
# lslpp -l|grep ssl
openssl.base 1.0.2.1300 COMMITTED Open Secure Socket Layer
openssl.man.en_US 1.0.2.1300 COMMITTED Open Secure Socket Layer
openssl.base 1.0.2.1300 COMMITTED Open Secure Socket Layer
# lslpp -l|grep openssh
openssh.base.client 7.5.102.1100 COMMITTED Open Secure Shell Commands
openssh.base.server 7.5.102.1100 COMMITTED Open Secure Shell Server
openssh.license 7.5.102.1100 COMMITTED Open Secure Shell License
openssh.man.en_US 7.5.102.1100 COMMITTED Open Secure Shell
openssh.msg.en_US 7.5.102.1100 COMMITTED Open Secure Shell Messages -
openssh.base.client 7.5.102.1100 COMMITTED Open Secure Shell Commands
openssh.base.server 7.5.102.1100 COMMITTED Open Secure Shell Server
通常在 1Gb 网络环境中,网络带宽是限制 scp 拷贝速率的瓶颈;而在 10Gb 环境中,网络带宽本身对 scp 性能通常已经不是关键。 影响 scp 的性能的关键因素是传输加密算法、完整性校验算法等等。
在作者的 10Gb 环境测试,通过调整传输加密算法(通过 -c 指定),在 OpenSSH 7.5 和 8.1 上均可以达到 400+ MBps 的速率 ( 使用aes128-gcm@openssh.com 或aes256-gcm@openssh.com ) 。
以下是基于 10Gb 网络环境对 scp 进行调优的要点总结:
1. 首先需要注意的一点是,scp 需要进行大量加解密运算的,这需要相当的 CPU 资源,建议分区配置需要保证 1-2 颗 CPU 给 scp 使用。
2 . OpenSSH 7.5.102.1100 for AIX 这个版本引入了一个性能补丁 IV94291 ,可以显著改善 scp/sftp 性能。但从最近的观察,有一些后续的 SSH 版本比如 7.5.102.1500 、 7.5.102.1801 可能又漏掉了这个补丁,性能变差了(使用默认算法, scp 性能仅 50MBps 左右;正常打完补丁应该在 130MBps 以上)。因此OpenSSH/openSSL 建议统一使用如下版本:
说明:
本建议基于本文发布时的最新信息,注意OpenSSH/openSSL更新速度较快,应当根据前面提及的下载网站地址及时确认最新版本。
7.5:
OpenSSH : 7.5.102.2000
openSSL : 1.0.2.2000
8.1:
OpenSSH : 8.1.102.2000
openSSL : 1.0.2.2001
这两个版本经过验证,在使用特定算法( aes128-gcm@openssh.com )时,单个scp 性能可以达到 400MBps+ .
3 . 经过验证, 使用aes128-gcm@openssh.com或aes256-gcm@openssh.com 加密算法性能最优,可以将这两个加密算法修改为默认值。编辑 /etc/ssh/ssh_config 文件,加上 Ciphers 选项,如下:
Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-ctr,aes128-cbc
这样修改之后,使用默认的 scp 命令即可以利用到此特性:
示例
使用scp 默认加密算法与aes128-gcm@openssh.com 或aes256-gcm@openssh.com的性能对比:
# scp ./aixppc64_12201_database.zip 192.168.2.221:/dev/null
aixppc64_12201_database.zip 100% 3206MB 245.0MB/s 00:13
# scp -c aes256-gcm@openssh.com ./aixppc64_12201_database.zip 192.168.2.221:/dev/null
aixppc64_12201_database.zip 100% 3206MB 407.8MB/s 00:07
# scp -c aes128-gcm@openssh.com ./aixppc64_12201_database.zip 192.168.2.221:/dev/null
aixppc64_12201_database.zip 100% 3206MB 430.2MB/s 00:07
说明:
aes128-gcm@openssh.com 、aes256-gcm@openssh.com 加密算法是OpenSSH 6.2 引入:
OpenSSH 6.2 / 6.2p1 (2013-03-22)
This release introduces a number of new features:
Features:
Oracle RAC 19c 在 7.2 TL4 SP1 ( openssh,openssl )安装时遇到类似如下 Errors:
PRVF-5311 : File ".....out" either does not exist or is not accessible on node ....
日志中有 /usr/bin/scp -p node2:.../tmp/GridSetupActions.../CVU_19.0.0.0.0_grid/scratch/getFileInfo....out ...
ERROR>protocol error: filename does not match request
这是 Oracle ssh 检测程序问题,不兼容版本太新的 openssh/openssl 版本。可以通过 ssh –V 命令确认, OpenSSH 版本在 7.5p1 以上的都存在此问题:
# ssh -V
OpenSSH_7.5p1, OpenSSL 1.0.2r 26 Feb 2019
可以采用如下三种途径解决:
1). 临时规避措施
重命名 scp :
#mv /usr/bin/scp /usr/bin/scp.ori
创建一个新的 scp 文件,并增加可执行权限:
#vi /usr/bin/scp
# chmod 555 /usr/bin/scp
编辑 scp 文件,增加如下行,给原始 scp 命令添加一个默认参数 -T :
/usr/bin/scp.ori -T $*
正常安装 RAC , RAC 安装完成后,将 scp 恢复为原始版本:
#mv /usr/bin/scp.ori /usr/bin/scp
2). 正常途径,下载 Oracle Patch 30159782 for SCP OF CHECKPOINT FAILS WITH OPENSSH 补丁
3). 临时途径,降低 openssh/openssl 版本到如下版本,等 RAC 安装完成,再升级回去
openssh 7.5.102.1500
openssl 1.0.2.1500
采用 installp -aFYXd . openssl openssh 强制安装
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞5
添加新评论1 条评论
2022-09-28 22:38