Redis Cluster高可用叢集線上遷移操作記錄【轉】
之前介紹了redis cluster的結構及高可用叢集部署過程,今天這裡簡單說下redis叢集的遷移。由於之前的redis cluster叢集環境部署的伺服器效能有限,需要遷移到高配置的伺服器上。考慮到是線上生產環境,決定線上遷移,遷移過程,不中斷服務。操作過程如下:
一、機器環境
1 2 3 4 5 6 7 8 9 10 11 12 13 |
遷移前機器環境
-------------------------------------------------------------------------------
主機名 ip地址 節點埠 redis-node01 172.16.60.207 7000,7001
redis-node02 172.16.60.208 7002,7003
redis-node03 172.16.60.209 7004,7005 遷移後機器環境
-------------------------------------------------------------------------------
主機名 ip地址 節點埠
redis-new01 172.16.60.202 7000,7001
redis-new02 172.16.60.204 7002,7003
redis-new03 172.16.60.205 7004,7005
|
二、遷移前redis cluster高可用叢集環境部署(這裡採用"三主三從"模式)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
三臺節點機器安裝操作如下一致
[[email protected] ~]
# yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim ruby rubygems unzip git
[[email protected] ~]
# /etc/init.d/iptables stop
[[email protected] ~]
# setenforce 0
[[email protected] ~]
# vim /etc/sysconfig/selinux
SELINUX=disabled
提前做好下面的準備操作,否則redis日誌裡會有相應報錯
[[email protected] ~]
# echo "512" > /proc/sys/net/core/somaxconn
[[email protected] ~]
# vim /etc/rc.local
echo
"512"
>
/proc/sys/net/core/somaxconn
[[email protected] ~]
# echo 1 > /proc/sys/vm/overcommit_memory
[[email protected] ~]
# sysctl vm.overcommit_memory=1
vm.overcommit_memory = 1
[[email protected] ~]
# vim /etc/sysctl.conf
vm.overcommit_memory=1
[[email protected] ~]
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[[email protected] ~]
# vim /etc/rc.local
echo
never >
/sys/kernel/mm/transparent_hugepage/enabled
下載並編譯安裝redis
[[email protected] ~]
# mkdir -p /data/software/
[[email protected] software]
# wget http://download.redis.io/releases/redis-4.0.6.tar.gz
[[email protected] software]
# tar -zvxf redis-4.0.6.tar.gz
[[email protected] software]
# mv redis-4.0.6 /data/
[[email protected] software]
# cd /data/redis-4.0.6/
[[email protected] redis-4.0.6]
# make
-------------------------------------------------------------------------------
分別建立和配置節點
節點1配置
[[email protected] ~]
# mkdir /data/redis-4.0.6/redis-cluster
[[email protected] ~]
# cd /data/redis-4.0.6/redis-cluster
[[email protected] redis-cluster]
# mkdir 7000 7001
[[email protected] redis-cluster]
# mkdir /var/log/redis
[[email protected] redis-cluster]
# vim 7000/redis.conf
port 7000
bind 172.16.60.207
daemonize
yes
pidfile
/var/run/redis_7000
.pid
logfile
/var/log/redis/redis_7000
.log
cluster-enabled
yes
cluster-config-
file
nodes_7000.conf
cluster-node-timeout 10100
appendonly
yes
[[email protected] redis-cluster]
# vim 7001/redis.conf
port 7001
bind 172.16.60.207
daemonize
yes
pidfile
/var/run/redis_7001
.pid
logfile
/var/log/redis/redis_7001
.log
cluster-enabled
yes
cluster-config-
file
nodes_7001.conf
cluster-node-timeout 10100
appendonly
yes
節點2配置
[[email protected] ~]
# mkdir /data/redis-4.0.6/redis-cluster
[[email protected] ~]
# cd /data/redis-4.0.6/redis-cluster
[[email protected] redis-cluster]
# mkdir 7002 7003
[[email protected] redis-cluster]
# mkdir /var/log/redis
[[email protected] redis-cluster]
# vim 7000/redis.conf
port 7002
bind 172.16.60.208
daemonize
yes
pidfile
/var/run/redis_7002
.pid
logfile
/var/log/redis/redis_7002
.log
cluster-enabled
yes
cluster-config-
file
nodes_7002.conf
cluster-node-timeout 10100
appendonly
yes
[[email protected] redis-cluster]
# vim 7003/redis.conf
port 7003
bind 172.16.60.208
daemonize
yes
pidfile
/var/run/redis_7003
.pid
logfile
/var/log/redis/redis_7003
.log
cluster-enabled
yes
cluster-config-
file
nodes_7003.conf
cluster-node-timeout 10100
appendonly
yes
節點3配置
[[email protected] ~]
# mkdir /data/redis-4.0.6/redis-cluster
[[email protected] ~]
# cd /data/redis-4.0.6/redis-cluster
[[email protected] redis-cluster]
# mkdir 7004 7005
[[email protected] redis-cluster]
# mkdir /var/log/redis
[[email protected] redis-cluster]
# vim 7004/redis.conf
port 7004
bind 172.16.60.209
daemonize
yes
pidfile
/var/run/redis_7004
.pid
logfile
/var/log/redis/redis_7004
.log
cluster-enabled
yes
cluster-config-
file
nodes_7004.conf
cluster-node-timeout 10100
appendonly
yes
[[email protected] redis-cluster]
# vim 7005/redis.conf
port 7005
bind 172.16.60.209
daemonize
yes
pidfile
/var/run/redis_7005
.pid
logfile
/var/log/redis/redis_7005
.log
cluster-enabled
yes
cluster-config-
file
nodes_7005.conf
cluster-node-timeout 10100
appendonly
yes
-------------------------------------------------------------------------------
分別啟動redis服務(這裡統一在
/data/redis-4
.0.6
/redis-cluster
路徑下啟動redis服務,即nodes_*.conf等檔案也在這個路徑下產生)
節點1
[[email protected] redis-cluster]
# for((i=0;i<=1;i++)); do /data/redis-4.0.6/src/redis-server /data/redis-4.0.6/redis-cluster/700$i/redis.conf; done
[[email protected] redis-cluster]
# ps -ef|grep redis
root 1103 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.207:7000 [cluster]
root 1105 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.207:7001 [cluster]
root 1315 32360 0 16:16 pts
/1
00:00:00
grep
redis
節點2
[[email protected] redis-cluster]
# for((i=2;i<=3;i++)); do /data/redis-4.0.6/src/redis-server /data/redis-4.0.6/redis-cluster/700$i/redis.conf; done
[[email protected] redis-cluster]
# ps -ef|grep redis
root 9446 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.208:7002 [cluster]
root 9448 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.208:7003 [cluster]
root 9644 8540 0 16:17 pts
/0
00:00:00
grep
redis
節點3
[[email protected] redis-cluster]
# for((i=4;i<=5;i++)); do /data/redis-4.0.6/src/redis-server /data/redis-4.0.6/redis-cluster/700$i/redis.conf; done
[[email protected] ~]
# ps -ef|grep redis
root 9486 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.209:7004 [cluster]
root 9488 1 0 15:19 ? 00:00:03
/data/redis-4
.0.6
/src/redis-server
172.16.60.209:7005 [cluster]
root 9686 9555 0 16:17 pts
/0
00:00:00
grep
redis
-------------------------------------------------------------------------------
接著在節點1上安裝 Ruby(只需要在其中一個節點上安裝即可)
[[email protected] ~]
# yum -y install ruby ruby-devel rubygems rpm-build
[[email protected] ~]
# gem install redis
溫馨提示:
在centos6.x下執行上面的
"gem install redis"
操作可能會報錯,坑很多!
預設yum安裝的ruby版本是1.8.7,版本太低,需要升級到ruby2.2以上,否則執行上面安裝會報錯!
首先安裝rvm(或者直接下載證書:https:
//pan
.baidu.com
/s/1slTyJ7n
金鑰:7uan 下載並解壓後直接執行
"curl -L get.rvm.io | bash -s stable"
即可)
[[email protected] ~]
# curl -L get.rvm.io | bash -s stable //可能會報錯,需要安裝提示進行下面一步操作
[[email protected] ~]
# curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - //然後再接著執行:curl -L get.rvm.io | bash -s stable
[[email protected] ~]
# find / -name rvm.sh
/etc/profile
.d
/rvm
.sh
[[email protected] ~]
# source /etc/profile.d/rvm.sh
[[email protected] ~]
# rvm requirements
然後升級ruby到2.3
[[email protected] ~]
# rvm install ruby 2.3.1
[[email protected] ~]
# ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
列出所有ruby版本
[[email protected] ~]
# rvm list
設定預設的版本
[[email protected] ~]
# rvm --default use 2.3.1
更新下載源
[[email protected] ~]
# gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org
https:
//gems
.ruby-china.org/ added to sources
source
https:
//rubygems
.org not present
in
cache
[[email protected] ~]
# gem sources
*** CURRENT SOURCES ***
相關推薦Redis Cluster高可用叢集線上遷移操作記錄【轉】之前介紹了redis cluster的結構及高可用叢集部署過程,今天這裡簡單說下redis叢集的遷移。由於之前的redis cluster叢集環境部署的伺服器效能有限,需要遷移到高配置的伺服器上。考慮到是線上生產環境,決定線上遷移,遷移過程,不中斷服務。操作過程如下: 一、機器環境 Redis Cluster高可用(HA)叢集環境搭建詳細步驟1.為什麼要有叢集 由於Redis主從複製架構每個資料庫都要儲存整個叢集中的所有資料,容易形成木桶效應,所以Redis3.0之後的版本新增特性就是叢集(Cluster) 2.Redis叢集架構說明 架構細節: (1)所有的redis節點彼此互聯(PI Redis Sentinel 高可用叢集搭建(redis4.0)前言 什麼是哨兵 Redis Sentinel出生於2012年,Redis 2.4穩定後首次釋出,它是一個旨在管理Redis叢集的系統。 哨兵的任務 監控(Monitoring):Sentinel會不斷地檢查你的主伺服器和從伺服器是否運作正常 提醒 輕鬆搭建Redis快取高可用叢集1、Redis叢集方案比較哨兵模式在redis3.0以前的版本要實現叢集一般是藉助哨兵sentinel工具來監控master節點的狀態,如果master節點異常,則會做主從切換,將某一臺slave作為master,哨兵的配置略微複雜,並且效能和高可用性等各方面表現一般,特別是 Redis建立高可用叢集教程【Windows環境】在這個網際網路時代,在高併發和高流量可能隨時爆發的情況下,單機版的系統或者單機版的應用已經無法生存,越來越多的應用開始支援叢集,支援分散式部署了。而Redis作為快取伺服器的比較出色的一員,它在出生的時候就被設定支援叢集,本篇就是介紹Redis叢集的介紹和搭建過程!使用的 Redis Sentinel高可用叢集Java客戶端java客戶端Jedis在2.2.2及以上版本實現了對Sentinel的支援,只要是通過命令:redis-cli -h 192.168.110.71 -p 6000 sentinel get-master-addr-by-name shard_a1) "192.168.11 k8s(一)、 1.9.0高可用叢集本地離線部署記錄一、部署說明 1.節點 master1: IP:192.168.0.170/24 hostname:171 master2: IP:192.168.0.171/24 hostname:172 VIP:192.168.0.169/24 2.工具版 高通平臺讀寫nv總結【轉】本文轉載自:https://blog.csdn.net/suofeng12345/article/details/52713993 一,引言 1. 什麼是NV &nbs 基於ubuntu搭建Redis(4.0) Cluster 高可用(HA)叢集環境What is Redis? Redis is often referred as a data structures server. What this means is that Redis provides access to mutable data redis搭建高可用cluster叢集1 .在redis目錄下新建資料夾 mkdir cluster 2 .在cluster目錄下建立機器節點目錄,每個服務在不同的埠號執行的 我的配置了6個節點,分別執行埠號為7001~7006 3 .將配置檔案redis.conf複製到各 Redis搭建高併發叢集-----Redis Cluster伺服器:CentOS7 是偽分散式,一臺虛擬機器建立6個redis例項 1、安裝需要的依賴包 [[email protected] ~]# yum install gcc gcc-c++ kernel-devel automake autoconf libtool make Eclipse操作HDFS高可用叢集Eclipse操作HDFS高可用叢集 關於對叢集的操作,不希望通過程式碼,更希望可以通過視覺化介面進行叢集的操作,下面的我們進行,通過eclipse對HDFS高可用叢集的操作。 配置hadoop的外掛 首先需要在本機的eclipse上配置 Hadoop-eclipse-plugi Redis 搭建一主二從三哨兵高可用叢集1、單個redis服務搭建請參考:redis服務搭建 2、在/usr/local下建立目錄redis-cluster,並在redis-cluster下建立 6379、6380、6381三個目錄,每個目錄下,建立 data、temp 目錄 # cd /usr/local # mkdir redis- 【redis】redis哨兵和高可用叢集前言 Redis 的 主從複製 模式下,一旦 主節點 由於故障不能提供服務,需要手動將 從節點 晉升為 主節點,同時還要通知 客戶端 更新 主節點地址,這種故障處理方式從一定程度上是無法接受的。Redis 2.8 以後提供了 Redis Sentinel 哨兵機制 來解決這 redis一主多從高可用叢集搭建Redis 一主兩從高可用環境搭建 Redis 支援 Master-Slave(主從)模式,Redis Server 可以設定為另一個 Redis Server 的主機(從機),從機定期從主機拿資料。特殊的,一個從機同樣可以設定為一個 Redis Server 基於Sentinel(哨兵)搭建實現Redis高可用叢集概述 Redis哨兵為Redis提供了高可用性。實際上這意味著你可以使用哨兵模式建立一個可以不用人為干預而應對各種故障的Redis部署。 哨兵模式還提供了其他的附加功能,如監控,通知,為客戶端提供配置。 下面是在巨集觀層面上哨兵模式的功能列表: 監控:哨兵不斷的檢查mast Redis高可用叢集-哨兵模式(Redis-Sentinel)搭建配置教程【Windows環境】No cross,no crown . 不經歷風雨,怎麼見彩虹。 Redis哨兵模式,用現在流行的話可以說就是一個“哨兵機器人”,給“哨兵機器人”進行相應的配置之後,這個”機器人”可以7*24小時工作,它能能夠自動幫助你做一些事情,如監控,提醒,自動處 Redis 高可用叢集管理工具SentinelSentinel是一個管理redis例項的工具,它可以實現對redis的監控、通知、自動故障轉移。sentinel不斷的檢測redis例項是否可以正常工作,通過API向其他程式報告redis的狀態,如果redis master不能工作,則會自動啟動故障轉移程序,將其中的一個 盤點Linux平臺下的高可用叢集軟體(High Availability Cluster- HA)由於X86硬體平臺伺服器的成本下降及其穩定性的提高,越來越多的廠家在小型機之外多了個選擇,因此基於X86平臺的Linux系統在企業級應用中普及起來,這篇文章將要介紹的是基於Linux的叢集軟體,它們主要分成三大類( 高可用叢集, 負載均衡叢集,科學計算叢集): 高可用叢集( High Availab redis 系列26 Cluster高可用 (2)一. ASK錯誤 叢集上篇最後講到,對於重新分片由redis-trib負責執行,關於該工具以後再介紹。在進行重新分片期間,源節點向目標節點遷移一個槽的過程中,可以會出現該槽中的一部分鍵值對儲存在源節點中,另一部份鍵值對則儲存在目標節點中。 當客戶端向源節點發送一個與資料庫鍵有關的命令時,並且命令要 |