高端服务器集群软件环境搭建
⑴ 如何最快搭建linux服务器集群
1.2.并行技术
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备
1).4台采用Pentium II处理器的PC机,每台配
置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。)
3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线
4).1个快速以太网(100BASE-Tx)的集线器或交换机
5).1张Linux安装盘
2.2 构建说明
对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的 PC机上安装上一块快速以太网卡。当然别忘了要加上附加的内存。确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。请确信在LINUX系统中安装了C编译器和C的LIB库。当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC为你的服务器节点(拥有两块网卡的那台)。在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行:
node1
node2
node3
node4
$p#
以下的这些配置是为了让其能使用MPICH’s p4策略去执行分布式的并行处理应用。
1. 在服务器节点
,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。MPICH的文档可在
5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南
1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名ftp到ftp.mcs.anl.gov的pub/mpi目录拿。(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并)
2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.进入mpich目录
4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。最好选择一个指定的目录来安装和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.执行:make >&make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。你完全可以跳过这一步。在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使
用安全的服务会使得任何启动速度加快,你可以执行以下命令构建:
make serv_p4
(serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。如果你有这个包,你就用以下命令可以构建它:
make nupshot
9.(可选)如果你想将MPICH安装到一个公用的地方让其它人使用它,你可以执行:
make install 或 bin/mpiinstall
你可以使用-prefix选项指定MPICH安装目录。安装后将生成include、lib、bin、sbin、www和man目录以及一个小小的示例目录,
到此你可以通告所有的用户如何编译、执行一个MPI程序。
⑵ 企业级k8s集群部署
二进制包
注:推荐用二进制包部署Kubernetes集群,虽手动部署麻烦,但可以学习很多工作原理利于后期维护。
环境
可以使用VMware虚拟机,宿主机必须8G内存以上
• 服务器可以访问外网,有从网上拉取镜像的需求
单Master服务器规划:( 注:部署时候根据具体环境进行IP地址调整即可 )
这里使用3台组建集群,可容忍1台机器故障,当然,你也可以使用5台组建集群
etcd1: 192.168.3.110 etcd2: 192.168.3.112 etcd3: 192.168.3.113
cfssl是一个开源的证书管理工具,使用json文件生成证书,相比openssl更方便使用。
找任意一台服务器操作,这里用Master节点。
创建工作目录:
自签CA:
生成证书:
会生成ca.pem和ca-key.pem文件。
创建证书申请文件:
注:上述文件hosts字段中IP为所有etcd节点的集群内部通信IP,一个都不能少!为了方便后期扩容可以多写几个预留的IP。
生成证书:
会生成etcd.pem和etcd-key.pem文件。
https://github.com/etcd-io/etcd/releases/download/v3.5.1/ etcd-v3.5.1-linux-amd64.tar.gz
以下在节点1上操作,然后将文件拷贝到其他集群机器
把刚才生成的证书拷贝到配置文件中的路径:
注意修改节点2和节点3分别etcd.conf配置,按照下面提示的修改
启动各节点的etcd服务
如果输出上面信息,就说明集群部署成功。
如果有问题看日志:/var/log/message
docker二进制下载地址:
https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
注:使用yum安装也行
集群所有机器都安装docker
生成证书:
会生成ca.pem和ca-key.pem文件。
创建证书申请文件:
生成证书:
会生成k8s.pem和k8s-key.pem文件。
下载地址参考:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#downloads-for-v12013
Wget https://dl.k8s.io/v1.20.13/kubernetes-server-linux-amd64.tar.gz
把刚才生成的证书拷贝到配置文件中的路径:
TLS Bootstrapping 机制,对work-node加入进行自签证书用
创建上述配置文件中token文件:
token 可以自行生产,网络下怎么生产
kube-apiserver服务
生成kube-controller-manager证书:
生成kubeconfig文件(以下是shell命令,直接在终端执行):
生成kube-scheler证书:
生成kubeconfig文件:
生成kubeconfig文件:
通过kubectl工具查看当前集群组件状态:
在所有worker node创建工作目录:
从master节点拷贝:
注:由于网络插件还没有部署,节点会没有准备就绪 NotReady
二进制包下载地址:https://github.com/containernetworking/plugins/releases
确保kubelet启用CNI:
在Master执行:
应用场景:例如kubectl logs
在Master节点将Worker Node涉及文件拷贝到新节点192.168.3.112/113
注:这几个文件是证书申请审批后自动生成的,每个Node不同,必须删除
Node2(192.168.3.113 )节点同上。记得修改主机名!
访问地址:https://NodeIP:30001
创建service account并绑定默认cluster-admin管理员集群角色:
使用输出的token登录Dashboard。
CoreDNS用于集群内部Service名称解析。
DNS解析测试:
这样 单Master集群就搭建完成了
⑶ 如何在一台ESXi主机上搭建一整套VSAN集群的环境
就来介绍下如何在一台ESXi主机上配置3个ESXi并组建一个VSAN集群。昨天,我介绍了如何在一台ESXi主机上安装ESXi的客户机(当然这些ESXi本身也是主机哦,还可以在其上部署虚拟机,虽然性能会比较差)。因此,首先就是根据上面所说的硬件条件创建3个虚拟机用来安装ESXi5.5u1。我的配置是每一台主机都包括:
4个CPU(最少2个)
8GB内存
3个硬盘,一个4GB(用来装系统)、一个40GB(模拟成SSD)、一个400GB(提供给vsan存放数据)
2个网络适配器,一个在子网192.168.10.x用于管理和虚拟机网络,一个在子网192.168.20.x,用于VSAN VMkernel
虚拟机版本10
注意,为了让ESXi客户机有2个网络适配器,在ESXi主机(本例中起名为esxi01)上的网络配置至少要配置2个不同的端口组,我将这2个端口组分别配置在了2个不同的vSwitch上:
vSwitch0,默认vSwitch,配置有管理网络(VMKernel)和VM Network 10端口组
vSwitch2,新增的vSwitch,配置有VM Network 20端口组
此外,我还因为有iSCSI存储,因此配置了2个iSCSI的VMKernel分别在vSwitch1和vSwitch2上。
vSwitch0和vSwitch2的配置截图如下:
这里有一点要说明的是,如果仅为了vsan网络的通信,vSwitch2可以没有上联的物理适配器,我的截图里面配置了上联的物理适配器是因为我还有一个iSCSI2的VMkernel需要使用。
安装3台虚拟机的过程就不赘述了,只要你按照我昨天的文章来操作,就可以顺利完成。安装完之后,照例是配置静态IP地址、FQDN主机名、禁用IPv6、DNS并开启SSH和ESXi SHELL以备之后在控制台输入命令行使用。
需要强调一次的是,在你的实验网络中,需要配置好一台域控制器,它同时也是DNS服务器,并事先在DNS服务器里面添加好静态的ESXi主机的DNS项。在我的实验环境中,它们是:
esxi55u01.home.lab – 192.168.10.31
esxi55u02.home.lab – 192.168.10.32
esxi55u03.home.lab – 192.168.10.33
请在黄色DCUI界面(安装完ESXi主机的初次配置界面)里面测试一下网络,如果主机域名也能顺利解析,那就说明网络配置都完备了。DNS对于正确配置VMware集群来说非常重要。
接下去就是用vSphere Web客户端再次连接到vCenter(我的是vCSA),把这几台新安装的ESXi主机添加进来,添加的时候要用FQDN,不能是IP地址。
现在让我们来看一看这些ESXi主机的磁盘情况(左边窗格点选主机,在右边窗格分别选择管理,存储器和存储设备,如图所示),可以看见置备的3个磁盘都是非SSD。下面要克服的问题是怎样欺骗ESXi,让它以为其中一块40GB的磁盘是SSD,这样才能满足VSAN配置的必要前提条件。
让我们进入到这台vSphere ESXi主机的管理控制台界面,在命令行里面输入下面的2条命令,就可以完成:
# esxcli storage nmp satp rule add --satp VMW_SATP_LOCAL --device mpx.vmhba1:C0:T1:L0 --option=enable_ssd
# esxcli storage core claiming reclaim -d mpx.vmhba1:C0:T1:L0
注意,这里的设备ID要填写你所想要变成SSD的那个磁盘,设备ID就是长的像mpx.vmhba1.C0:T1:L0的那个。
输入命令后,如果没有填错,是不返回结果的。回到vSphere Web客户端,刷新一下,你就会发现那个40GB的磁盘的类型变成SSD了。
关于VSAN的配置,LeoXiao同学写的很不错,就不多罗嗦了。你可以参考他的文章。
我借个图说明下顺序:
多说一句,为了测试NIOC功能,而这个功能只有在分布式交换机上才有,所以,建议VSAN集群配置的时候先配置好分布式交换机,并且把VSAN专用的VMkernel建在分布式交换机上。
最后,给大家看一下,要搭建一个VSAN集群的测试环境,在一台主机上至少要配置并开启5台虚拟机——包括1台域控制器,1台vCenter和3台ESXi主机(每台都配了8GB内存哦)。
虽然还是有一些网络传输上不稳定的问题,不过vsan数据存储好歹是建起来了。
⑷ 三台服务器搭建高可用hadoop集群中datanode怎么分配比较好
本文通过在vmware workstation上建立三台虚拟机来搭建hadoop集群环境,其中一台作为namenode,两台作为datanode。 一、安装vmware workstation(10.0.0)(一路下一步即可) 二、创建3个虚拟机 每个虚拟机安装Ubuntu 桌面版
⑸ linux 的环境搭建(二)--redis单机环境、生产环境、集群环境的搭建
一、目录
1、工具
2、安装tcl
3、安装单机版redis
4、把redis设置为daemon进程,每次系统启动,redis进程一起启动
5、安装redis cluster
二、工具
2.1、tcl8.6.1-src.tar.gz
2.2、ruby-2.3.1.tar.gz
2.3、redis-4.1.1.gem
2.4、redis-3.2.8.tar.gz
2.5、openssl-1.0.2r.tar.gz
三、安装tcl(安装redis必须先要安装tcl)
3.1、把tcl8.6.1-src.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下
四、安装单机版redis
4.1、把redis-3.2.8.tar.gz通过WinSCP上传到虚拟机中的/usr/local目录下
4.2、依次运行如下命令:
tar -zxvf redis-3.2.8.tar.gz 解压文件
cd redis-3.2.8
make && make test && make install
五、把redis设置为daemon进程,每次系统启动,redis进程一起启动
5.1、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_6379,6379是我们希望这个redis实例监听的端口号
5.2、修改redis_6379脚本的第6行的REDISPORT,设置为相同的端口号(默认就是6379)
protected-mode no 取消保护模式,保护模式只能127.0.0.1访问
daemonize yes 让redis以daemon进程运行
pidfile /var/run/redis_6379.pid 设置redis的pid文件位置
bind 192.168.3.110
port 6379 设置redis的监听端口号
dir /var/redis/6379 设置持久化文件的存储位置
logfile /var/log/redis/6379.log 设置日志文件位置
5.6、启动redis,依次执行:
cd /etc/init.d,
chmod 777 redis_6379,赋读写执行的权限(chmod -R 777 * 是递归把该目录下的所有文件和其子文件全部赋权限)
./redis_6379 start 启动
5.7、确认redis进程是否启动,ps -ef | grep redis
5.8、让redis跟随系统启动自动启动
5.9、重启系统,不手动启动redis,直接连接redis,可以连接上,表示配置成功
此时一个单机版的redis的生产环境已经搭建好了,每次服务器重启,redis都会自动的启动
六、安装redis cluster
(redis cluster集群,要求至少3个master,去组成一个高可用,健壮的分布式的集群,每个master都建议至少给一个slave,3个master,3个slave)
6.1、前提,我在其它机器上启动了六个redis(安装步骤都如下)
2.2、创建三个目录:
mkdir -p /etc/redis-cluster 存放集群配置信息,自动生成配置
mkdir -p /var/log/redis redis日志
mkdir -p /var/redis/7001 存放redis的rdb文件和aof文件
6.3、将redis的utils目录下的redis_init_script脚本拷贝到linux的/etc/init.d目录中,将redis_init_script重命名为redis_7001,7001是我们希望这个redis实例监听的端口号,并修改redis_7001配置文件中的REDISPORT=7001
6.4、修改/etc/redis/7001.conf中的部分配置为生产环境
6.5、完成了一个redis环境的配置,依次再配置其余五个,分别为7002、7003、7004、7005、7006,每个启动脚本内,都修改对应的端口号
6.6、启动6个redis实例
6.7、创建集群(需要安装ruby、rubygems)
上述命令在部分机器上是可以直接运行完成,成功安装的,但在部分机器上运行第三条命令时会提示ruby版本太低、openssl找不到的问题,下面依次解决这两个问题:
6.8、再次运行gem install redis命令,报出两个错误
6.9、再次运行gem install redis命令,报出一个错误
6.10、再次运行gem install redis命令,报出一个错误
6.11、再次运行gem install redis命令
[root@ceshi01 local]# gem install redis
Successfully installed redis-4.1.1
Parsing documentation for redis-4.1.1
Done installing documentation for redis after 1 seconds
WARNING: Unable to pull data from ' https://rubygems.org/' : SSL_connect returned=1 errno=0 state=error: certificate verify failed ( https://api.rubygems.org/specs.4.8.gz )
1 gem installed
运行成功
此时Redis安装好,此三个工具也安装好了,这时我们来做一个Redis集群测试,在一台服务器中创建了6个Redis实例,开启6个Redis服务
redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
[root@eshop-cache02 init.d]# redis-trib.rb create --replicas 1 192.168.3.104:7001 192.168.3.104:7002 192.168.3.105:7003 192.168.3.105:7004 192.168.3.106:7005 192.168.3.106:7006
此时一个redis集群环境就已经搭建好了,可以通过redis-trib.rb check 192.168.3.105:7003命令查看集群几点的信息
[root@eshop-cache02 init.d]# redis-trib.rb check 192.168.3.105:7004
redis cluster的优点:读写分离+高可用+多master
读写分离:每个master都有一个slave
高可用:master宕机,slave自动被切换过去
多master:横向扩容支持更大数据量