1. 程式人生 > >建立ocfs2叢集和增加節點

建立ocfs2叢集和增加節點

建立ocfs2 cluster 首先,在所有節點上要有一個共享的塊裝置。 具體可以通過不同機制來實現。例如,通過把一個節點的塊裝置以iscsi的形式讓其他節點掛載;或者在FC-SAN架構下,通過配置盤陣,讓不同的節點看到同一個塊裝置。當然,具體對映的linux裝置名可能是不同的,例如在一個節點上是/dev/sdc,在另一個節點上是/dev/sde。 下面一個已經裝好的例子 [[email protected] ~]# mounted.ocfs2 -f Device Stack Cluster F Nodes /dev/sde1 o2cb tncloud06, tncloud10 [[email protected]
~]# mounted.ocfs2 -f
Device Stack Cluster F Nodes /dev/sdc1 o2cb tncloud06, tncloud10 第二,linux核心要支援ocfs。例如 # lsmod|grep ocfs ocfs2_dlmfs 27704 1 ocfs2_stack_o2cb 13279 1 ocfs2_dlm 229980 1 ocfs2_stack_o2cb ocfs2 1079135 3 ocfs2_stackglue 17171 3 ocfs2,ocfs2_stack_o2cb,ocfs2_dlmfs ocfs2_nodemanager 237661 12 ocfs2,ocfs2_stack_o2cb,ocfs2_dlmfs,ocfs2_dlm
jbd2 102940 1 ocfs2 OCFS2有自己的叢集服務結構,叫做O2CB,它包括: NM:節點管理器,它對cluster.conf檔案中所有節點進行的監控。 HB:心跳服務(Heart beat service),他在節點離開或加入rac時提示up和down的訊息。 TCP:控制節點間的通訊。 DLM:分散式鎖管理器,它持續跟蹤所有的鎖,鎖的所有者及狀態。 CONFIGFS:使用者配置檔案系統驅動空間,掛節點是/config DLMFS:使用者空間和核心空間DLM的介面。 值得注意的是,儘管linux支援ocfs2,但常見的linux發行版核心可能並沒有編譯ocfs2模組。筆者自行在centos7上編譯了支援ocfs2的核心。 # uname -a
Linux tncloud10 3.10.0-327.28.2.el7.tn.1.x86_64 #1 SMP Thu Aug 11 14:48:56 CST 2016 x86_64 x86_64 x86_64 GNU/Linux # cat /boot/config-3.10.0-327.28.2.el7.x86_64 |grep OCFS2 CONFIG_OCFS2_FS=m CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set 第三,安裝ocfs2-tools使用者工具。 # rpm -qa|grep ocfs ocfs2-tools-1.8.4-1.12.el7.x86_64 主要提供了以下工具 格式化工具 mkfs.ocfs2 叢集管理工具 o2cb_ctl /etc/rc.d/init.d/o2cb /etc/rc.d/init.d/ocfs2 等等。 例如,檢視ocfs2檔案系統屬性。 # tunefs.ocfs2 -Q "UUID = %U\nNumSlots = %N\nBlock size = %B bytes\nCluster size = %T bytes\nRoot directory block number = %R\nSystem directory block number = %Y\nFirst cluster group block number = %P\nVolume label = %V\nCompat flags = %M\nIncompat flags = %H\nRO Compat flags = %O\n" /dev/sdc1 UUID = B8F7C05388CD4814BEDD4AE2A1C0A001 NumSlots = 8 Block size = 4096 bytes Cluster size = 65536 bytes Root directory block number = 33 System directory block number = 34 First cluster group block number = 16 Volume label = Compat flags = backup-super strict-journal-super Incompat flags = sparse extended-slotmap inline-data metaecc xattr indexed-dirs refcount discontig-bg RO Compat flags = unwritten usrquota grpquota 第四,確保節點之間網路互通。 第五,在各個節點上,建立和編輯一個檔案 /etc/ocfs2/cluster.conf 舉例如下 #start cluster: heartbeat_mode = local node_count = 2 name = tncloud node: number = 0 cluster = tncloud ip_port = 7777 ip_address = 10.10.150.6 name = tncloud06 node: number = 1 cluster = tncloud ip_port = 7777 ip_address = 10.10.150.10 name = tncloud10 #end 第六,啟動ocfs2 clsuter。 # /etc/init.d/o2cb load # /etc/init.d/o2cb online # /etc/init.d/o2cb status Driver for "configfs": Loaded Filesystem "configfs": Mounted Stack glue driver: Loaded Stack plugin "o2cb": Loaded Driver for "ocfs2_dlmfs": Loaded Filesystem "ocfs2_dlmfs": Mounted Checking O2CB cluster "tncloud": Online Heartbeat dead threshold: 61 Network idle timeout: 30000 Network keepalive delay: 2000 Network reconnect delay: 2000 Heartbeat mode: Local Checking O2CB heartbeat: Active 如果提示Checking O2CB heartbeat: Not active,說明還沒掛載共享磁碟。 第七,掛載共享磁碟。 找一個節點,只需執行一次。 # mkfs.ocfs2 -C 64K -T vmstore -N 8 -J block64 --fs-feature-level=max-features /dev/sde1 -F 然後,在所有節點上mount。 # mount -t ocfs2 /dev/sdc1 /mnt/tncloud 成功mount之後,例如 [[email protected] ~]# mount|grep ocfs2 ocfs2_dlmfs on /dlm type ocfs2_dlmfs (rw,relatime) /dev/sdc1 on /mnt/tncloud type ocfs2 (rw,relatime,_netdev,heartbeat=local,nointr,data=ordered,errors=remount-ro,atime_quantum=60,coherency=full,user_xattr,acl) 至此建立工作完成。 第八,如果寫入/etc/fstab,必須加上_netdev選項,指示必須在網路可用情況下再進行mount。例如 UUID="b8f7c053-88cd-4814-bedd-4ae2a1c0a001" /mnt/tncloud ocfs2 _netdev,defaults 0 0 參考 增加ocfs2節點 第一,檢查numslots是否滿足增加節點的需求。確保cluster線上,執行 # tunefs.ocfs2 -Q "NumSlots = %N\n" /dev/sde1 NumSlots = 8 如果需要修改, # tunefs.ocfs2 -N <numslots> device 增加節點分為兩種情況,線上增加和離線增加。 線上增加新的ocfs2節點 使用o2cb_ctl 工具,在每個節點上執行: # o2cb_ctl -C -i -n NODENAME -t node -a number=NODENUM -a ip_address=IPADDR -a ip_port=IPPORT -a cluster=CLUSTERNAME man手冊的例子 Add node10 to an online cluster: $ o2cb_ctl -C -i -n node10 -t node -a number=10 -a ip_address=192.168.1.10 -a ip_port=7777 -a cluster=mycluster 引數說明 -C Create an object in the OCFS2 Cluster Configuration. 表示建立一個新的物件。 -i Valid only with -C. When creating something (node or cluster), it will also install it in the live cluster. If the parameter is not specified, then only update the /etc/ocfs2/cluster.conf. 意思是不但更新cluster.conf,也同時更新clutser相關程序的記憶體資料。 -n object object is usually the node name or cluster name. In the /etc/ocfs2/cluster.conf file, it would be the value of the name parameter for any of the sections (cluster or node). 對於新增新的節點,-n引數是代表 node name。 -t type type can be cluster, node or heartbeat. 對於新增index節點,-t引數是node。 -a <attribute> With -C, <attribute> is in format "parameter=value", where the parameter is a valid parameter that can be set in the file /etc/ocfs2/cluster.conf. 指明各個屬性值,例如ip_address=1.2.3.4。 離線cluster環境中增加新的節點 可以使用console,或者直接手動修改cluster.conf檔案,然後通過console或者直接拷貝cluster.conf檔案到所有的節點。 也可以使用o2cb_ctl,例如 # o2cb_ctl -C -n NODENAME -t node -a number=NODENUM -a ip_address=IPADDR -a ip_port=IPPORT -a cluster=CLUSTERNAME  離線環境不需要加引數“-i”。

相關推薦

建立ocfs2叢集增加節點

建立ocfs2 cluster 首先,在所有節點上要有一個共享的塊裝置。 具體可以通過不同機制來實現。例如,通過把一個節點的塊裝置以iscsi的形式讓其他節點掛載;或者在FC-SAN架構下,通過配置盤陣,讓不同的節點看到同一個塊裝置。當然,具體對映的linux裝置名可能是不

redis 叢集-新增加節點並資料遷移

現在我們已經有一個包含6個節點的叢集,我寫了段程式碼,往叢集寫入10W條測試資料。 現在模擬機器擴容場景,為叢集加入一個master節點7006和一個slave節點7007。 redis-trib.rb add-node 10.211.55.4:7006 10.211.55

redis3.0.6叢集動態 增加節點

redis3.0.6叢集動態增加節點 1,已有的redis叢集(具體的操作見redis叢集安裝) 2,將需要新增進叢集的redis節點啟動 3, 向叢集中增加主節點 cd /opt/redis/redis-3.0.6/src ./redi

JQuery學習筆記(四)——建立、插入刪除節點

一個小練習: 需求1: 點選 submit 按鈕時, 檢查是否選擇 type, 若沒有選擇給出提示: "請選擇型別";  檢查文字框中是否有輸入(可以去除前後空格), 若沒有輸入,則給出提示: "請輸入內容"; 若檢查都通過, 則在相應的 ul 節點中新增對應的 li 節點

Redis叢集增加節點刪除節點

  本文主要是承接上一篇文章Redis叢集的離線安裝成功以後,我們如何進行給叢集增加新的主從節點(叢集擴容)以及如何從叢集中刪除節點(叢集縮容),也就是叢集的伸縮,叢集伸縮的原理是控制虛擬槽和資料在節點之間進行移動,通過實際操作來整理一下叢集的伸縮。  上篇文章中搭建好的叢集為三主三從,埠號為7000、700

redis叢集新增節點刪除節點

redis叢集新增節點 1、主節點:如果新增的是主節點,那麼我們需要建立一個空節點,然後將某些雜湊槽移動到這個空節點裡面。 2、從節點:如果新增的是從節點,我們也需要建立一個空節點,然後把這個新節點設定成叢集中某個主節點的複製品。 新增節點: 1、首先把需要新增的節點啟動 建立7

js怎樣新增、移除、移動、複製、建立查詢節點

參考:http://www.w3school.com.cn/xmldom/dom_nodes_get.asp (1)建立新節點 var para=document.createElement(“p”); //建立新的 元素 var node=document.createTextN

新增、移除、移動、複製、建立查詢節點

初心-楊瑞超個人部落格誠邀您加入qq群(IT-程式猿-技術交流群):757345416 1)建立新節點 createDocumentFragment() //建立一個DOM片段   createElement() //建立一個具體的元素   createTextNode

JQuery應用例項學習 —— 15 刪除增加DOM節點

remove:刪除 empty:清空 append:在後面加 prepend:在前面加 appendTo:追加 <!DOCTYPE html> <html lang="en"

Kafka 資料遷移(增加節點減少節點均適用)

當Kafka 減少Broker節點後,需要把資料分割槽遷移到其他節點上,以下將介紹我的一次遷移驗證過程。 前3步為環境準備,實際資料操作看第4步即可 增加Broker節點,也可以採用步驟4相同的方法進行重新分割槽 方案思想:使用kafka-reassign-partitions命令,

DOM操作——怎樣新增、移除、移動、複製、建立查詢節點?

(1)建立新節點       createDocumentFragment()    //建立一個DOM片段       createElement()   //建立一個具體的元素       createTextNode()   //建立一個文字節點 (2)新增、移

動態的新增刪除hadoop叢集中的節點

一:新增節點 A:新節點中新增賬戶,設定無密碼登陸 B:Name節點中設定到新節點的無密碼登陸 ssh-copy-id slave4 C:在Name節點slaves檔案中新增新節點 D:在所有節點/etc/hosts檔案中增加新節點(所有節點保持一致)

redis叢集動態新增主節點節點

如上圖所示:我現在有6臺機器的redis叢集,埠為7002,7003,7004為主,埠為7001,7005,7006為從節點 現在準備了兩個沒有在叢集中的redis服務:7007和7008; ok 現在讓我們開始把7007和7008新增到叢集中 第一步:執行下.

redis叢集動態增加或者刪除節點

Redis叢集新增節點 1:首先把需要新增的節點啟動 cd /usr/local/cluster/ mkdir 7006 cp /usr/local/cluster/redis.conf  /usr/local/cluster/7006/

Redis叢集新增刪除節點(主從)

一、原始叢集(6個節點,3主3從): (1)啟動叢集:因為叢集建立一次就行,所以直接啟動所有節點服務即可 [[email protected] ~]# /usr/local/redis/bin/redis-server /usr/local/redis-clus

redis叢集——增加節點

在上篇文章中說的是搭建叢集,這篇文章我們來說向叢集中如何增加節點。 說明: 增加一個6382的節點 1、配置檔案 6382的redis.conf 的配置資訊 《 redis叢集入門(不是主從叢集)》 的配置資訊幾乎完全相同,僅僅埠不相同,我們替換工具將埠全部替換即可

Redis叢集:主從節點新增刪除

新增主節點 叢集建立成功後可以向叢集中新增節點,下面是新增一個master主節點  新增7007結點,參考叢集結點規劃章節新增一個“7007”目錄作為新節點。 執行下邊命令: ./redis-trib.rb add-node  19

Cocos Creator 建立銷燬節點(摘自官方文件)

建立新節點 除了通過場景編輯器建立節點外,我們也可以在指令碼中動態建立節點。通過 new cc.Node() 並將它加入 到場景中,可以實現整個建立過程。 以下是一個簡單的例子: cc.Class({ extends: cc.Component, prope

ORACLE ASM環境中刪除建立表空間、增加表空間資料檔案

 1、列出表空間 SQL> select name from v$tablespace; 刪除表空間,包括屬於它的資料檔案(物理上也同時刪除) SQL> drop tablespace qiu including contents and datafiles

JS中的DOM操作怎樣新增、移除、移動、複製、建立查詢節點

  DOM操作怎樣新增、移除、移動、複製、建立和查詢節點?   (1)建立新節點 createDocumentFragment() //建立一個DOM片段 createElement()