环境描述
备区ES集群由6台服务器组成,3台master节点作为主节点的同时还做为数据节点,另外3台为纯data数据节点。
ES节点名称 | IP地址 | ES节点类型 |
---|---|---|
es-01 | 192.168.1.40 | master,data |
es-02 | 192.168.1.8 | master,data |
es-03 | 192.168.1.60 | master,data |
es-04 | 192.168.1.64 | data |
es-05 | 192.168.1.47 | data |
es-06 | 192.168.1.166 | data |
目前各节点ES数据还是存储在/根目录下,通过 df 查看磁盘使用已超过80%。
1 | [mms@es-05 mms]$ df -hT|grep -v tmpfs |
面对即将使用完的/根目录,决定对ES磁盘进行扩充并单独挂载到新的目录下;方案是挂载一个新磁盘,对磁盘做lvm逻辑卷,将逻辑卷挂到新目录,然后将ES的数据目录拷贝到新目录下,把旧数据目录重命名 新目录改名为旧目录名称,重启ES服务等待数据平衡完成。
ES 磁盘扩充
基于上面所描述的方案,进行实施操作。
磁盘分区
查看新添加的磁盘
1 | [mms@es-05 mms]$ lsblk |
对磁盘进行分区,对超过2TB磁盘分区建议使用 parted 工具
1 | [root@es-05 ~]# parted /dev/vdb |
GPT分区的磁盘可以使用parted来查看4k是否对齐:parted /dev/vdb unit s print
1 | [root@es-06 ~]# parted /dev/vdb unit s print |
start开始的扇区能被8整除,就表示4k对齐了
创建lvm逻辑卷
没有lvm命令可以使用yum安装:yum install lvm2
创建物理卷PV
1 | #创建物理卷PV |
创建卷组VG
1 | #创建卷组VG 同时把分区/dev/vdb1加入到vg0组里,可以同时添加多个; |
创建逻辑卷LV
1 | #创建逻辑卷LV |
磁盘初始化和挂载
1 | #格式化磁盘 |
后续扩容
1 | #扩展vg容量 |
扩展知识:LVM管理命令
功能 | PV管理命令 | VG管理命令 | LV管理命令 |
---|---|---|---|
Scan(扫描) | pvscan | vgscan | lvscan |
Create (建立) | pvcreate | vgcreate | lvcreate |
Display (显示) | pvdisplay | vgdisplay | lvdisplay |
Remove (移除) | pvremove | vgremove | lvremove |
Extend (扩展) | vgextend | lvextend | |
Reduce (减少) | vgreduce | lvreduce |
ES 切换数据存储目录
在切换数据目录前,我们需要将现在有ES数据目录拷贝到新创建目录下
拷贝ES数据到新目录
使用rsync工具增量同步
1 | #先同步一份ES目录数据,后面在进行切换的时候再重新同步增量数据 |
重启ES服务及注意事项
以下操作务必同时只操作一台ES服务器,一台服务器切换完等待集群变为green后再操作另一台
查看ES集群状态
1 | #查看集群状态 |
关闭ES索引自动平衡
1 | curl -XPUT -u elastic "http://192.168.1.8:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient" : { "cluster.routing.allocation.enable" : "none" } }' |
停止ES服务
1 | #先操作data数据节点 |
增量同步ES数据
1 | #增量同步一份最新ES数据 |
ES更换存储目录
修改ES配置文件,更换存储目录
1 | [mms@es-05 ~]$ su - root |
启动ES服务
确保配置生效后,就可以启动ES服务了
1 | [mms@es-05 ~]# supervisorctl start es |
开启ES索引自动平衡
1 | curl -XPUT -u elastic "http://192.168.1.8:9200/_cluster/settings" -H 'Content-Type: application/json' -d' { "transient" : { "cluster.routing.allocation.enable" : "all" } }' |
查看ES集群状态
1 | ##查看集群状态 |
重复 ES 切换数据存储目录 中的操作,直到所有ES节点切换完成
集群操作完确保没有问题后,及时清理无用数据 /data2 和 旧数据目录 /data_old