1. 程式人生 > >Redis Cluster高可用叢集線上遷移操作記錄【轉】

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-

redisredis哨兵和可用叢集

前言 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 可用叢集管理工具Sentinel

Sentinel是一個管理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負責執行,關於該工具以後再介紹。在進行重新分片期間,源節點向目標節點遷移一個槽的過程中,可以會出現該槽中的一部分鍵值對儲存在源節點中,另一部份鍵值對則儲存在目標節點中。   當客戶端向源節點發送一個與資料庫鍵有關的命令時,並且命令要