集群:HPC/LB/HA

本文详细介绍Ceph集群的搭建过程,包括环境准备、免密登录设置、NTP时间同步、磁盘分区与初始化、OSD创建及状态验证等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集群:HPCLBHA

LBnginx / lvs / haproxy / F5

HAkeepalived / RHCS

 

LVSLinux虚拟服务器

LVS工作模式:NAT / TUN / DR

 

存储:

1、块存储,如iSCSI、 FC  SAN

2、文件存储,如NFSCIFS

3、对象存储

 

Ceph:

1、它是一个分布式文件系统,可以提供块存储、文件系统存储和对象存储。但是文件存储还不非常成熟,不建议在生产环境中使用。应用的最多的形式是块存储。

2、Ceph主要组件

 

OSD:对象存储设备,它是ceph中唯一的真正进行数据存储的组件。通常情况下,一个OSD进程绑定到一块物理磁盘。

MONMonitor监视器,跟踪整个集群的健康状态。它为每个ceph组件维护一个映射表。MON进程数目是奇数,如357……

MDS:元数据服务器。为ceph文件系统存储提供元数据,如果不是文件系统存储则不需要。

元数据:描述数据的数据。如一本书的出版社、页数、作者、出版时间等都是元数据。

RADOS:可靠自主的分存式对象存储。RADOS保证CEPH中的各种数据都是对象形式,操持CEPH的一致性。

RBD:为客户端提供块存储接口

RADOS GW:为客户端提供对象存储接口

CEPH FS:为客户端提供文件系统存储接口

 

CEPH环境搭建

1、创建5台虚拟机

node1.tedu.cn  192.168.4.1

node2.tedu.cn  192.168.4.2

node3.tedu.cn  192.168.4.3

node4.tedu.cn  192.168.4.4

client.tedu.cn   192.168.4.10

2、启动虚机

[root@room8pc16 kvms_ansi]# for vm in rh7_node{1..5}

> do

> virsh start $vm

> done

3、在物理主机上配置CEPHYUM

[root@room8pc16 cluster]# mkdir  /var/ftp/ceph/

[root@room8pc16 cluster]# tail  -1  /etc/fstab 

/ISO/rhcs2.0-rhosp9-20161113-x86_64.iso /var/ftp/ceph   iso9660 defaults    0 0

[root@room8pc16 cluster]# mount -a

[root@room8pc16 ~]# vim  server.repo 

[rhel7.4]

name=rhel7.4

baseurl=ftp://192.168.4.254/rhel7.4

enabled=1

gpgcheck=0

[mon]

name=mon

baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/MON

enabled=1

gpgcheck=0

[osd]

name=osd

baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/OSD

enabled=1

gpgcheck=0

[tools]

name=tools

baseurl=ftp://192.168.4.254/ceph/rhceph-2.0-rhel-7-x86_64/Tools

enabled=1

gpgcheck=0

4、CEPH集群中有很多节点,逐台管理效率低下,还可能出现错误,所以可以找一台主机当作管理节点,由它统一管理所有主机。我们保用node1作为管理节点。

5、为了使得管理节点能够方便的管理,先创建免密登陆

(1)通过名称访问各台主机,配置名称解析

[root@node1 ~]# for i in {1..4}

> do

> echo -e "192.168.4.$i\tnode$i.tedu.cn\tnode$i" >> /etc/hosts

> done

[root@node1 ~]# echo -e "192.168.4.10\tclient.tedu.cn\tclient" >> /etc/hosts

(2)生成密钥对,非交互模式生成

[root@node1 ~]# ssh-keygen  -f  /root/.ssh/id_rsa  -N ""

(3)第一交ssh到远程主机会被询问(yes/no)?。可以先将远程主机的身份信息,保存到本地

[root@node1 ~]# ssh-keyscan 192.168.4.{1..4} >> /root/.ssh/known_hosts 

[root@node1 ~]# ssh-keyscan 192.168.4.10 >> /root/.ssh/known_hosts

[root@node1 ~]# ssh-keyscan node{1..4} >> /root/.ssh/known_hosts

[root@node1 ~]# ssh-keyscan client >> /root/.ssh/known_hosts

4)拷贝密钥到远程主机

[root@node1 ~]# for ip in 192.168.4.{1..4}

> do

> ssh-copy-id -i $ip

> done

[root@node1 ~]# ssh-copy-id -i 192.168.4.10

5)把hosts文件拷贝到各台主机

[root@node1 ~]# for host in node{2..4}

> do

> scp /etc/hosts $host:/etc/

> done

[root@node1 ~]# scp /etc/hosts client:/etc

6、将client作为NTP服务器

NTP:网络时间协议,udp123端口。用于同步时间。

精确时间的确定:原子钟。全球时间不是一样的,因为地球是圆的,所以将地球按经度,每隔15度角划分一个时区,一共24时区。中国采用东八区时间。

(1)在client上安装软件包

[root@client ~]# yum install -y chrony

(2)修改配置

[root@client ~]# vim /etc/chrony.conf 

allow 192.168.4.0/24

local stratum 10

(3)启动服务

[root@client ~]# systemctl restart chronyd; systemctl enable chronyd

(4)将其他主机作为客户端

[root@node1 ~]# vim /etc/chrony.conf 

server 192.168.4.10 iburst    #其他3server开头的删除

[root@node1 ~]# for ip in 192.168.4.{2..4}

> do

> scp /etc/chrony.conf $ip:/etc/

> done

[root@node1 ~]# for ip in 192.168.4.{1..4}

> do

> ssh $ip systemctl restart chronyd

> done

(5)测试

[root@node1 ~]# date -s "2018-06-20 12:00:00"

[root@node1 ~]# ntpdate  192.168.4.10  192.168.4.10同步时钟

[root@node1 ~]# date  时间已同步

7、在node1~node3上各添加3块硬盘

 

 

 

8、在node1节点上安装ceph部署工具

[root@node1 ~]# yum install -y ceph-deploy

9、在node1节点上为ceph创建工作目录,目录名自定义

[root@node1 ~]# mkdir  ceph_conf

[root@node1 ~]# cd ceph_conf

10、生成ceph安装所必须的配置文件

[root@node1 ceph_conf]# ceph-deploy new node1 node2 node3

[root@node1 ceph_conf]# ls

11、安装ceph集群

[root@node1 ceph_conf]# ceph-deploy install node1 node2 node3

12、初始化所有节点的MON服务

[root@node1 ceph_conf]# ceph-deploy  mon  create-initial

 

 

配置CEPH集群

1、在node1~node3节点上对vdb进行分区,将vdb的分区用于日志

[root@node1 ceph_conf]# for host in node{1..3}

> do

> ssh  $host  parted  /dev/vdb mklabel  gpt

> done

[root@node1 ceph_conf]# for host in node{1..3}; do ssh $host parted /dev/vdb mkpart primary 1024kB 50%; done

[root@node1 ceph_conf]# for host in node{1..3}; do ssh $host parted /dev/vdb mkpart primary 50% 100%; done

[root@node1 ceph_conf]# for host in node{1..3}; do ssh $host lsblk; done 

[root@node1 ceph_conf]# for host in node{1..3}; do ssh $host chown ceph.ceph /dev/vdb?; done  # 系统重启后属主属组又变回root.disk了。

 

配置udev,使得磁盘属主属组在reboot后,仍然是ceph

[root@node3 ~]# vim /etc/udev/rules.d/90-mydisk.rules

ACTION=="add", KERNEL=="vdb[12]", OWNER="ceph", GROUP="ceph"

 

 

2、创建OSD磁盘,在node1上执行

(1)初始化磁盘

[root@node1 ceph_conf]# for host in node{1..3}

> do

> ceph-deploy disk zap $host:vdc $host:vdd

> done

(2)创建OSD,将数据的日志区指定为vdb

[root@node1 ceph_conf]# for host in node{1..3}

> do

> ceph-deploy osd create $host:vdc:/dev/vdb1 $host:vdd:/dev/vdb2

> done

如果出现run ‘gatherkeys’的错误提示,执行以下命令

[root@node1 ceph_conf]# ceph-deploy gatherkeys node1 node2 node3

(3)查看状态

[root@node1 ceph_conf]# ceph  -s  如果正常将显示HEATH_OK

如果状态是HEALTH_ERR,就重启服务,如下:

[root@node1 ceph_conf]# for host in node{1..3}; do ssh  $host  systemctl restart ceph\*.service  ceph\*.target ; done

 

 

 

 

 

 

 

 

 

 

 

<think>嗯,用户需要查找NVIDIAHPCSDK在Ubuntu22.04Jammy上的安装信息,这个问题需要仔细分析各个引用内容并提取关键点。从引用来看存在几个关键挑战:系统兼容性问题(引用[2]指出旧版SDK在较新系统上可能报错)、GPG密钥缺失(引用[3])以及依赖管理问题(引用[4]关于FFTW的编译)。用户直接问Jammy的发布信息,但注意到官方文档可能滞后(引用[1]的下载链接版本较旧),所以需要强调版本适配性。考虑到引用[2]提到的gcc冲突案例,应该重点提醒用户避开该陷阱——毕竟新系统默认gcc版本较高,而HPCSDK对编译器敏感。另外从引用[3]看,用户可能遇到安全认证问题,需要提前准备好解决方案。有意思的是引用[4]提到了用intel编译器配置FFTW,这可能暗示用户实际目的是编译科学计算软件(比如VASP)。虽然用户当前没明说,但应该建议ta确认最终目标是否需要这些额外依赖,避免装完SDK才发现还要折腾其他组件。用户应该是个计算科学领域的研究者,从ta准确使用发行版代号"Jammy"就能看出熟悉Ubuntu体系。不过ta似乎踩过版本兼容的坑(否则不会专门指定Jammy),所以回复时要突出风险预防部分,比如强烈建议通过runfile安装而非仓库——毕竟引用[3]的GPG错误就源自仓库安装方式。最后关于版本选择,考虑到Jammy较新,保守起见推荐最新SDK版本(当前引用中最新才到21.7),但需要提醒用户查官网确认。那些兼容性警告(比如gcc版本要求)得加粗强调,这直接关系到安装成败。</think> 根据引用信息和最新官方文档,在**Ubuntu 22.04 LTS (Jammy Jellyfish)** 上安装 NVIDIA HPC SDK 的步骤如下(注意兼容性问题和潜在依赖冲突): --- ### **安装步骤** 1. **安装依赖环境** 确保系统已更新,并安装基础编译工具: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential gfortran libssl-dev -y ``` 2. **下载最新 HPC SDK 安装包** **务必下载官方适配 Jammy 的版本**(最新版通常兼容最新系统): ```bash wget https://developer.download.nvidia.com/hpc-sdk/24.5/nvhpc_24.5_Linux_x86_64_cuda_12.4.tar.gz # 替换为实际最新版 ``` > 📌 注:版本号请查阅 [NVIDIA HPC SDK下载页](https://developer.nvidia.com/hpc-sdk-downloads),避免使用旧版(引用[2]指出旧版会导致编译错误)。 3. **解压并运行安装脚本** ```bash tar xzvf nvhpc_24.5_Linux_x86_64_cuda_12.4.tar.gz cd nvhpc_24.5_Linux_x86_64_cuda_12.4 ./install ``` - **自定义安装路径**:安装脚本提示时,输入目标路径(如 `/opt/nvidia/hpc_sdk`)避免权限问题[^2]。 - **接受许可协议**:按提示输入 `accept`。 4. **配置环境变量** 在 `~/.bashrc` 末尾添加: ```bash export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/bin:$PATH export MANPATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.5/compilers/man:$MANPATH ``` 生效配置: ```bash source ~/.bashrc ``` 5. **解决 GPG 密钥错误(如遇报错)** 若出现 `NO_PUBKEY F338EA0E0105AB24` 错误(引用[3]): ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F338EA0E0105AB24 ``` --- ### **⚠️ 关键注意事项** 1. **GCC 版本兼容性** Ubuntu Jammy 默认使用 GCC 11+,若需降级(如某些软件要求 GCC 9): ```bash sudo apt install gcc-9 g++-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 ``` > 📌 **强烈建议优先使用 NVIDIA 官方适配 Jammy 的 SDK 版本**,避免降级 GCC(引用[2]中因 GCC 版本冲突导致编译失败)[^2]。 2. **CUDA 驱动要求** 安装前需确保已装载 NVIDIA 驱动和 CUDA Toolkit(至少满足 SDK 要求的最低版本)。 3. **验证安装** ```bash nvc --version # 查看编译器版本 ``` --- ### **为何不推荐仓库安装?** - 官方 Apt 仓库可能未及时适配 Jammy(引用[3] 的 GPG 错误即源于仓库配置问题)[^3]。 - Runfile 安装灵活性更高,可规避系统默认工具链冲突[^2][^4]。 --- **官方文档参考**: [NVIDIA HPC SDK Release Notes](https://docs.nvidia.com/hpc-sdk/hpc-sdk-release-notes/index.html) [Linux 安装指南](https://docs.nvidia.com/hpc-sdk/install-guide/index.html#install-linux)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值