proxmox 集群搭建
- 背景- 刚到公司的时候,公司分了一台服务器,非常开心的装了 Centos7,跑了几个服务: - GETH 私链
- BTC 测试网络
- BTC 私链
- EOS 测试网络
- …
 - 随着服务的增多,悲剧了,各个服务依赖的库、工具和服务不同,在一个环境里容易混乱,逐考虑使用虚拟机(VM)或是容器来进行管理。这里有 2 个选择: - K8S(Kubernetes)
- Proxmox
 - 这里先不说 K8S,相对而言 K8S 比较复杂,短时间难以上手,以后有时间再弄。本人是无意中看到有人在玩 Proxmox 的,proxmox 本身概念比较简单,就一个管理 KVM 和 LXC 容器的平台,基于 Debian 制作,使用也简单,通过 WEB 界面就能完成绝大部分的工作;本人认为 Proxmox 的文档和论坛也比较友好,写得简单易懂。基于这些优点,Proxmox 上手非常快,我也才折腾了 2 周。 
- 准备- 这里准备 3 台机器,分别为: - pve1 192.168.50.237
- pve2 192.168.50.236
- pve3 192.168.50.159
 3 台机器, 128G SSD + 1T HDD, 16G 内存,分配好静态 IP。
 
- 安装- 下载proxmox 官网最新版 IOS 镜像(5.2), 使用烧录工具 etcher写入 U 盘,使用 U 盘安装 Proxmox 系统, 统一安装在 SSD 上,安装过程不到 10 分钟,最重要的是设置好密码和网络信息。 
- 集群- 随便选 1 台机器做主控机,这里使用 pve1, 先进入 pve1 的终端命令控制台,直接登录或 SSH 都可。 - 1 - pvecm create YOUR-CLUSTER-NAME - 依次进入其他机器, 执行如下命令: - 1 - pvecm add 192.168.50.237(pve1 ip) - 回到 pve1, 查看集群状态, 如果是如下状态,基本上可以了。 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24- root@pve1:~# pvecm status 
 Quorum information
 ------------------
 Date: Fri Sep 21 20:05:24 2018
 Quorum provider: corosync_votequorum
 Nodes: 3
 Node ID: 0x00000001
 Ring ID: 3/216
 Quorate: Yes
 Votequorum information
 ----------------------
 Expected votes: 3
 Highest expected: 3
 Total votes: 3
 Quorum: 2
 Flags: Quorate
 Membership information
 ----------------------
 Nodeid Votes Name
 0x00000003 1 192.168.50.159
 0x00000002 1 192.168.50.236
 0x00000001 1 192.168.50.237 (local)- 打开 pve1 的 web 控制台,即可看到 3 台机器了。 - 1 - https://192.168.50.237:8006  
- 添加 NFS 存储和 Disk- NFS
 在 Web 控制台使用如下方式添加 NFS 存储,创建好的 NFS 是会在集群中共享的,即任何一个节点都可访问该 NFS 存储
 Datacenter –> Storage –> NFS 在弹出的对话框中,添加 NFS 服务地址及导出的路径,最后确认即可。
   - Disk
 在 Web 控制台上添加 Disk
 pve1 –> Disks –> LVM –> Create: Volume Group 在弹出的对话框中,选择未使用的 HDD 硬盘(要求硬盘未分区,如果有,请先使用 Fdisk 工具抹除分区信息表),添加即可。
   
- NFS
- 上传 iso 镜像和下载 lxc 容器模板- 在新建虚拟机(VM)和 Lxc 容器之前,需要先下载好相关的 ISO 镜像或是容器模板 - iso 镜像 
 在 Web 控制台上传 ISO 镜像
 nfs(pve1) –> Upload –> select file(选择要上传的 ISO 镜像文件) –> 点击 upload  
- lxc 模板 
 在 Web 控制台下载 lxc 模板
 nfs(pve1) –> Templates –> 选择要下载的模板 –> download  
 
- 创建 VM 和 Lxc,启动,停止,克隆- 创建虚拟机(VM)
 Web 控制台–> Create VM(右上角) –> 按向导操作,依次选定如下信息:
 - general, 一般信息,主要设置 VM 名称,其他保持默认就好
- OS,操作系统,这里会用到前面上传 ISO 镜像
- Disk,设定磁盘大小
- CPU,设定 CPU 及核数量
- Memory,设定内存大小
- Network,设定网络类型,是静态 IP 叿 DHCP 等
- Finish, 创建完成  
 - 创建容器(lxc container)
 创建容器过程与 VM 创建过程类似,有少许不同,Web 控制台–> Create CT(右上角) –> 按向导操作,依次选定如下信息:
 - general,一般信息,须设定 hostname,root 密码等
- template, 选择前面下载好的模板
- Root Disk, 根磁盘,设定大小
- CPU
- Memory
- Network
- DNS
- Confirm & finish  
 - 启动,停止与克隆
 - 在左侧列表中选择 1 台 VM 或容器
- 点击右上角相关按钮 
 
- 创建虚拟机(VM)
- FAQ- 为什么不使用 Ceph 分布式文件系统 
 答: Ceph 看起来很美好,但在资源有限环境中不建议使用,我原来也把 ceph 折腾到 Proxmox 集群里了,但后面发现非常卡,甚至还不如本地磁盘的性能,所以就删除了 Ceph
- 如何快速克隆 
 答: Proxmox 自带的克隆比较慢,对虚拟机(VM)的克隆推荐使用clonezilla,其类似于 windows 上的 ghost(磁盘克隆工具),使用办法是先下载clonezilla的镜像,替换 VM 的光驱镜像,设定 VM 从光驱引导即可。
 
- 资源
