Redisの-4.0.14クラスタのインストールの展開

Redisの-4.0.14クラスタのインストールの展開

次のKVM仮想マシン、NATモードのネットワーク環境内でこのチュートリアル設置環境。ここでは、Linuxホスト・プレゼンテーションに単一のインスタンスを使用して、サーバーのリソースを節約するためです。大量生産環境の下でLinuxサーバ(マシン・Redisのインスタンスの小さな流れにはお勧めしません)上で展開Redisのインスタンスを超えて使用しないでください。IDCのマシン環境下では(タイプIOまたはメモリ)メモリタイプを選択するために、同時実行カード、クラウドホストを確保します。結局のところ、Redisのは高-IOのサービスです。
ヒント:Redisのではなく、から行わプライマリサーバ上のbgsave事業の提案閉鎖から3主な大規模クラスタおよび3である場合。Bgsaveは、IOスループットの遅れ効果を生み出すトラフィックのピークを減らします。

  • Redisのダウンロード、インストール
 cd ~
 yum install gcc gcc-c++ -y
 wget http://download.redis.io/releases/redis-4.0.14.tar.gz
 tar -zxf redis-4.0.14.tar.gz
 cd redis-4.0.14
 cd deps
 make hiredis jemalloc linenoise lua geohash-int
 cd ..
 make PREFIX=/app/sina/redis-9701 install
 make install
  • システムはRedisの-CLIパスを添加しました
[root@redis-nec001 ~]# cp /app/sina/redis-9701/bin/redis-cli /usr/local/bin/redis-cli
[root@redis-nec001 ~]# redis-cli  --version
redis-cli 4.0.14
  • 本番環境の複数のコピーが各インスタンスのために推奨されていることを確認すると、別のサーバーを設定します
cd /app/sina/
mkdir -p redis-9701/conf
cp ~/redis-4.0.14/redis.conf  ./redis-9701/conf/
cp -arp redis-9701 redis-9702
cp -arp redis-9701 redis-9703
cp -arp redis-9701 redis-9704
cp -arp redis-9701 redis-9705
cp -arp redis-9701 redis-9706
cp -arp redis-9701 redis-9707
  • 設定ファイルを変更しredis.conf、以下の項目を変更したり、開くこと
bind 192.168.100.214
port 9701
daemonize yes
pidfile /app/sina/redis-9701/conf/redis_9701.pid
logfile "/data/sina/redis-9701/redis.log"
dir /data/sina/redis-9701/
maxmemory 4096M
cluster-enabled yes
cluster-config-file /app/sina/redis-9701/conf/nodes-9701.conf
  • 設定ruby環境RVMの道
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm install 2.6.4
rvm 2.6.4 --default
gem install redis
cp ~/redis/redis-4.0.14/src/redis-trib.rb /usr/local/bin/
  • システムのカーネル・パラメータを設定します
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
cp ~/redis/redis-4.0.14/src/redis-trib.rb /usr/local/bin/
cat /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.core_uses_pid = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_orphan_retries = 2
kernel.core_pattern = /data/sina/core/core_%e_%p
vm.overcommit_memory = 1
kernel.sysrq = 1
  • スタートのRedis(シーナのユーザーに開始)
  chown -R sina:sina /app/sina/redis* /data/sina/
  su - sina
 /app/sina/redis-9701/bin/redis-server  /app/sina/redis-9701/conf/redis.conf
 /app/sina/redis-9702/bin/redis-server  /app/sina/redis-9702/conf/redis.conf
 /app/sina/redis-9703/bin/redis-server  /app/sina/redis-9703/conf/redis.conf
 /app/sina/redis-9704/bin/redis-server  /app/sina/redis-9704/conf/redis.conf
 /app/sina/redis-9705/bin/redis-server  /app/sina/redis-9705/conf/redis.conf
 /app/sina/redis-9706/bin/redis-server  /app/sina/redis-9706/conf/redis.conf
 /app/sina/redis-9707/bin/redis-server  /app/sina/redis-9707/conf/redis.conf
  • クラスタは、主3,3に分割されて作成メイン3(クラスタの最小数である)から
redis-trib.rb  create --replicas 0 192.168.100.214:9701 192.168.100.214:9702 192.168.100.214:9703 #3主模式,最小节点集群,无法提供高可用.
redis-trib.rb  create --replicas 1 192.168.100.214:9701 192.168.100.214:9702 192.168.100.214:9703 192.168.100.214:9704 192.168.100.214:9705 192.168.100.214:9706 #主从模式,Slave从节点即是Master的备用节点也是数据的读取节点
  • 3メインクラスタの最小値を作成します。
[root@redis-nec001 bin]# redis-trib.rb  create --replicas 0 192.168.100.214:9701  192.168.100.214:9702  192.168.100.214:9703
>>> Creating cluster
>>> Performing hash slots allocation on 3 nodes...
Using 3 masters:
192.168.100.214:9701
192.168.100.214:9702
192.168.100.214:9703
M: fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9701
   slots:0-5460 (5461 slots) master
M: 517fd7f65b7e653a91b24aa7a06f1ec360bd8220 192.168.100.214:9702
   slots:5461-10922 (5462 slots) master
M: ccf082f6516ec23c1aee891358a3daf47d2b5ca7 192.168.100.214:9703
   slots:10923-16383 (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes         
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.100.214:9701)
M: fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9701
   slots:0-5460 (5461 slots) master
   0 additional replica(s)
M: 517fd7f65b7e653a91b24aa7a06f1ec360bd8220 192.168.100.214:9702
   slots:5461-10922 (5462 slots) master
   0 additional replica(s)
M: ccf082f6516ec23c1aee891358a3daf47d2b5ca7 192.168.100.214:9703
   slots:10923-16383 (5461 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
  • ビュークラスタのステータス
[root@redis-nec001 bin]# redis-cli  -h 192.168.100.214 -p 9701 -c
192.168.100.214:9701> cluster nodes
517fd7f65b7e653a91b24aa7a06f1ec360bd8220 192.168.100.214:9702@19702 master - 0 1568616352578 2 connected 5461-10922
ccf082f6516ec23c1aee891358a3daf47d2b5ca7 192.168.100.214:9703@19703 master - 0 1568616353579 3 connected 10923-16383
fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9701@19701 myself,master - 0 1568616352000 1 connected 0-5460
192.168.100.214:9701> 
  • HAから第三の主要な実施形態3のアップグレードからのクラスタにノードを追加します

Redisの-trib.rbは、最終的にIPアドレスとポートにスレーブノードの添加、続いて、追加されたノードをランダム--master-IDを介してマスターノード上のマスターノードから選択されること--slave、前記--slaveノード追加しますコマンド形式を完了するために、マスタノードが完了すると、我々は考えているかのRedisを設計するか分かりません。パラメータを追加する必要が重要ではありませんが、それは不可欠です。

[root@redis-nec001 sina]# redis-trib.rb add-node --slave --master-id fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9704   192.168.100.214:9701
>>> Adding node 192.168.100.214:9704 to cluster 192.168.100.214:9701
>>> Performing Cluster Check (using node 192.168.100.214:9701)
M: fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9701
   slots:0-5460 (5461 slots) master
   0 additional replica(s)
M: 517fd7f65b7e653a91b24aa7a06f1ec360bd8220 192.168.100.214:9702
   slots:5461-10922 (5462 slots) master
   0 additional replica(s)
M: ccf082f6516ec23c1aee891358a3daf47d2b5ca7 192.168.100.214:9703
   slots:10923-16383 (5461 slots) master
   0 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 192.168.100.214:9704 to make it join the cluster.
Waiting for the cluster to join.
>>> Configure node as replica of 192.168.100.214:9701.
[OK] New node added correctly.
  • プライマリノードのスロット割り当て処理を追加し
    、それに割り当てられ、次いで「合理的な」スロット、Redisのクラスタに最初に追加されたインスタンス・ストレージが空で、マスタノードのやや複雑な構成を追加します。
    メインクラスタのソースは3であるが、これは一般的に、新たにスロットへのノードの参加各元のノードに割り当てられた第3の主分布、追加した方がよい場合
    である:
    ノード1は、新たなノード1の半分が割り当てられる
    ノード2が新たなノード2の半分が割り当てられる
    ノード3が新たに割り当てられますノード3の半分が
    非対称スロット数毎に設けられて追加された同一のマスタノード、または均一に近いである
    スロット数=総スロット(日付を含む)オンラインノード/クラスタ・ノード
    の各ノードの=スロットの各数のソースを移行する必要がありますスロットのノード番号-スロットノードの今数

  • プライマリノードを追加します。
redis-trib.rb add-node 192.168.100.214:9707  192.168.100.214:9701
  • スロットに加えてメインノードのそれぞれは、新しいノード、基本的に各マスタノードのスロット数5461分かる参照
    今のスロットの数(移行後に譲渡された)ノード= 4096分の16384 = 4
    古いマスターノードがスロットを移行する必要が番号= 5461-4094 = 1365
[root@redis-nec001 sina]# redis-trib.rb check 192.168.100.214:9701              
>>> Performing Cluster Check (using node 192.168.100.214:9701)
M: fa820855aeebad6551d09d0cd6063aeaefc8f4f9 192.168.100.214:9701
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
S: 62b3ded1a7545f0931611e837cfdbe6dc6fa580c 192.168.100.214:9704
   slots: (0 slots) slave
   replicates fa820855aeebad6551d09d0cd6063aeaefc8f4f9
M: 517fd7f65b7e653a91b24aa7a06f1ec360bd8220 192.168.100.214:9702
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
S: 143e3f136118e62ae6b5a6d64fc21e1fcafee4b4 192.168.100.214:9706
   slots: (0 slots) slave
   replicates ccf082f6516ec23c1aee891358a3daf47d2b5ca7
S: 97147860d71d363059927f21ac92b16b4d17c97e 192.168.100.214:9705
   slots: (0 slots) slave
   replicates 517fd7f65b7e653a91b24aa7a06f1ec360bd8220
M: ccf082f6516ec23c1aee891358a3daf47d2b5ca7 192.168.100.214:9703
   slots:10923-16383 (5461 slots) master
M: 2c7eb280218234fb6adbd4718c7e21b128f1a938 192.168.100.214:9707
   slots: (0 slots) master
   0 additional replica(s)
  • スロット割り当て
redis-trib.rb reshard 192.168.100.214:9707
[OK] All 16384 slots covered.
How many slots do you want to move (from 1 to 16384)? 4096
What is the receiving node ID? 2c7eb280218234fb6adbd4718c7e21b128f1a938
Please enter all the source node IDs.
  Type 'all' to use all the nodes as source nodes for the hash slots.
  Type 'done' once you entered all the source nodes IDs.
Source node #1:fa820855aeebad6551d09d0cd6063aeaefc8f4f9
Source node #2:517fd7f65b7e653a91b24aa7a06f1ec360bd8220
Source node #3:ccf082f6516ec23c1aee891358a3daf47d2b5ca7
Source node #4:done
Moving slot 1334 from fa820855aeebad6551d09d0cd6063aeaefc8f4f9
.......
.......
Do you want to proceed with the proposed reshard plan (yes/no)? yes

他の二つの主ノードに順次スロットはまた、手順が省略された上に割り当てられている
割り当てた後、各スロットのマスタノードは、実質的に同じです。
スロットは使用して、移行プロセス中にうまくいかないかもしれないredis-trib.rb fixし、コマンド修理を
間違った理由を移行
ピークを避けるため、トラフィックの量、CPU負荷の負荷の問題が浮上しているとき---マスターサーバーノードを
ホストがbgsaveを閉じるためにbgsaveのポイントのリードを開け---、およびオープンノードからbgsave、マスターノードは、ストレスを和らげます

おすすめ

転載: blog.51cto.com/9095441/2442491