在arm平台上使用tiup cluster安装出来的tidb-deploy目录下的组件的bin目录下的二进制文件是x86的

arm平台
cpu是ft2000+;
操作系统是uos20;
安装命令是
https://docs.pingcap.com/zh/tidb/stable/quick-start-with-tidb
里面的 tiup cluster,启动报“/tidb-deploy/pd-2379/scripts/run_pd.sh:行9: /tidb-deploy/pd-2379/bin/pd-server:无法执行二进制文件: 可执行文件格式错误”
查看文件格式如下:

root@uos01:/tidb-deploy/pd-2379/bin# file pd-server 
pd-server: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, Go BuildID=c1inx3xTU3U3wImRnXNj/8GgA2SV5j-rG5fyYTQQY/YhbkueUecy8OnZUu2yMk/uwlCjEq6N0ZHtXP55jfF, BuildID[sha1]=d5cda2fcdcdfc7fa0b2a71318b4742cd4609f353, not stripped

补充一下 安装时的截图:


从这个图看,应该是 在 安装的时候未检测 arch,或者说需要在 yaml文件里面配置架构。
单独安装的playground的时候似乎是 检测了架构的,but 那个 TiFlash服务起不来。而且监听的IP是127.0.0.1,我部署在服务器上,没办法访问。

tiup cluster deploy 部署集群,可以在 topo 文件中指定系统版本,并在上面的步骤中查看版本是否匹配,
https://github.com/pingcap/tiup/blob/master/examples/topology.example.yaml#L9

启动集群的时候tiflash起不来,报错内容如下“Error: failed to start tiflash: tiflash 10.0.0.10:9000 failed to start: timed out waiting for port 9000 to be started after 2m0s, please check the log of the instance: timed out ”
之后log目录是空的,我执行了一下bin/tiflash报错如下
,我也看了一下文件都是正常的。

export LD_LIBRARY_PATH=/tidb-deploy/tiflash-9000/bin/tiflash:/tidb-deploy/tiflash-9000/bin/tiflash/flash_cluster_manager/
添加了这个之后,不会报找不到 so了。
but 重新启动还是 没起来9000端口,之后,log目录也没有日志,打算destroy一下再deploy一下

通过 service启动命令,看到了启动脚本,之后找到了问题
修改了vi /tidb-deploy/tiflash-9000/scripts/run_tiflash.sh
中如下内容后,启动成功。
#export LD_LIBRARY_PATH=/tidb-deploy/tiflash-9000/bin/tiflash:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/tidb-deploy/tiflash-9000/bin/tiflash:/tidb-deploy/tiflash-9000/bin/tiflash/flash_cluster_manager/:$LD_LIBRARY_PATH

这个配置文件里面可以配置 比如 grafana 页面的https么?

默认就是 grafana_servers ip port 如果需要转发可以通过 Nginx ,

这个 tidb 集群和 tiflash 的版本可否提供下/

tiup cluster deploy testdb v4.0.4 ./topo.yaml --user root -p
tiflash的版本没有指定。

应该是启动方式问题吧,目前推荐使用 script 和 tiup 进行管理。

呃,能提供一个具体的命令么?
没很看明白,通过script和tiup进行管理是什么意思。
tiup cluster start testdb 这样难道不是 通过tiup 进行管理?

“默认就是 grafana_servers ip port 如果需要转发可以通过 Nginx ,”
我的场景是需要 不使用http,防止明文在网络中通信。我是不是可以通过修改grafana的配置添加ssl,tiup启动的时候,不会管是http还是https的吧,只会执行 systemctl start grafana.service,对吧。

是的,tiup 启动只会操作 service

上面启动 tiflash 的方式为 ./tiflash,并不是推荐的线上使用方式。
可以使用./script/run_tiflash.sh 启动。或者通过 tiup cluster start cluster-name -R tiflash 启动。

哦,我 通过 ./tiflash 启动是为了查看报错内容。因为开始并没有看到 日志里面那一大片 重试的json里面的command部分执行的 systemctl 命令,建议这一块,直接打印json 的日志级别改成 debug,info 级别 把 重要的command等关键信息打印出来。或者是把json格式化输出一下,便于阅读。

@lidezhu-PingCAP 辛苦关注下。

so 搞清楚了你的描述之后,那我补充一下,
1、我通过./tiflash的方式是看到的报错是,同目录下的so 无法识别
2、我再命令行export这个目录的lib_path之后,会报那个manage目录下的so无法找到的报错。
3、之后 我通过 systemctl的方式启动看到的 script命令之后,通过 script的启动命令启动,他会报 manager目录下的so找不到的报错,我记得但是 是 openssl.so
4、之后,我修改了 script里面的export 的内容之后,就OK了。
我理解可能是你们当时环境的机器上 操作系统的lib中有openssl.so ,或者是uos20的debian10的so的链接方式有差异,所有没有有这个报错。建议你们再复查一下。
我的环境是 ft2000+,uos20.

看起来你现在已经成功启动 tiflash 了,你的问题是如何开启 grafana 的 https 是吗?

呃,2个问题都解决了,at你关注,应该是 需要你 关注一下,日志输出格式。
另外,应该需要确认一下tiflash的那个bug,我是修改了 script 里面的导入lib_path环境变量才启动成功的。

明白了,那么没有修改 script 的 lib_path 情况下,使用 ./script/run_tiflash.sh 具体的报错可以截图发下吗?方便我们后续复现和排查,在上面似乎没有找到相关截图。


额,特意又停了集群,改回去脚本,截的图,是不是可以单独 启停一个服务?

这样可以了,非常感谢,我们后续会排查下相关原因。