User Tools

Site Tools


решение_gmirror_ggate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
решение_gmirror_ggate [2010/02/19 16:21]
val
решение_gmirror_ggate [2010/04/20 10:35]
val
Line 1: Line 1:
 ====== Решение GMIRROR GGATE ====== ====== Решение GMIRROR GGATE ======
 +
 +[[http://​www.freebsd.org/​doc/​en/​books/​handbook/​geom-ggate.html]]
 +
 +[[http://​phaq.phunsites.net/​2006/​08/​11/​realtime-file-system-replication-on-freebsd/​]]
 +
 +===== Первоначальная конфигурация =====
 +
 +Выполняем процедуру [[Добавление дисков]] до создания и переименования слайса включительно на обоих узлах.
  
 <​code>​ <​code>​
-[gate2:~] # cat /​etc/​gg.exports +[gate1:~] # cat /​etc/​hosts 
-master ​RW /dev/ad1s1e+... 
 +10.0.0.2 slave 
 +... 
 + 
 +[gate2:~] # cat /​etc/​hosts 
 +... 
 +10.0.0.1 slave 
 +... 
 + 
 +[gateN:~] # cat /​etc/​gg.exports 
 +slave RW /dev/ad1s1e 
 + 
 +[gateN:~] # mkdir /opt 
 + 
 +[gateN:~] # cat /​etc/​periodic.conf 
 +daily_status_gmirror_enable="​YES"​ 
 +</​code>​ 
 + 
 +===== Инициализация ===== 
 +<​code>​ 
 +[gate1:~] # gmirror load 
 +[gate1:~] # gmirror label -v gm0 /​dev/​ad1s1e 
 +[gate1:~] # gmirror status 
 + 
 +[gate1:~] # newfs /​dev/​mirror/​gm0 
 + 
 +[gate1:~] # fsck -y -t ufs /​dev/​mirror/​gm0 
 +[gate1:~] # mount /​dev/​mirror/​gm0 /opt 
  
 [gate2:~] # ggated [gate2:~] # ggated
  
 [gate1:~] # ggatec create -t 10 -u 0 slave /dev/ad1s1e && echo Success [gate1:~] # ggatec create -t 10 -u 0 slave /dev/ad1s1e && echo Success
-Success 
 [gate1:~] # ggatec list [gate1:~] # ggatec list
-ggate0 
  
-[gate1:~] # gmirror insert ​-p 100 gm0 /​dev/​ad1s1e +[gate1:~] # gmirror insert gm0 ggate0
- +
-[gate1:~] # gmirror label -v -n -b prefer gm0 /dev/ggate0 +
-Metadata value stored on /​dev/​ggate0. +
-Done. +
-[gate1:~] # gmirror load +
-[gate1:~] # gmirror insert -p 100 gm0 /dev/ad1s1e+
  
 [gate1:~] # gmirror status [gate1:~] # gmirror status
-      Name    Status ​ Components +</code>
-mirror/gm0  DEGRADED ​ ggate0 +
-                      ad1s1e+
  
 +==== В случае сбоя синхронизации ====
 +<​code>​
 [gate1:~] # gmirror status [gate1:~] # gmirror status
       Name    Status ​ Components       Name    Status ​ Components
-mirror/​gm0 ​ DEGRADED  ​ggate0 +mirror/​gm0 ​ DEGRADED ​ ad1s1e 
-                      ​ad1s1e +</​code>​ 
-[gate1:~] # gmirror ​list gm0 +заставляем зеркало "​забыть"​ о недоподключенном диске и вновь подключаем его 
-Geom name: gm0 +<​code>​ 
-State: DEGRADED +[gate1:~] # gmirror ​forget ​gm0 
-Components: 2 +[gate1:~] # gmirror insert ​gm0 ggate0
-Balance: prefer +
-Slice: 4096 +
-Flags: NOAUTOSYNC +
-GenID: 0 +
-SyncID: 1 +
-ID: 3348985214 +
-Providers:​ +
-1. Name: mirror/​gm0 +
-   ​Mediasize:​ 1073438720 (1.0G) +
-   ​Sectorsize:​ 512 +
-   Mode: r0w0e0 +
-Consumers:​ +
-1. Name: ggate0 +
-   ​Mediasize:​ 1073439232 (1.0G) +
-   ​Sectorsize:​ 512 +
-   Mode: r1w1e1 +
-   ​State:​ ACTIVE +
-   ​Priority:​ 0 +
-   ​Flags:​ NONE +
-   ​GenID:​ 0 +
-   ​SyncID:​ 1 +
-   ID: 2553232608 +
-2. Name: ad1s1e +
-   ​Mediasize:​ 1073439232 (1.0G) +
-   ​Sectorsize:​ 512 +
-   Mode: r1w1e1 +
-   ​State:​ STALE +
-   ​Priority:​ 100 +
-   ​Flags:​ SYNCHRONIZING +
-   ​GenID:​ 0 +
-   ​SyncID:​ 1 +
-   ID: 1755782325+
  
-[gate1:~] # gmirror rebuild gm0 ad1s1e+[gate1:~] # tail -f /​var/​log/​messages 
 +</​code>​ 
 +Иногда,​ при постоянных сбоях синхронизации,​ помогает перезапуск ggated на slave узле 
 +<​code>​ 
 +[gate2:~] # killall ggated 
 +[gate2:~] # ggated 
 +</​code>​
  
 +===== Смена ролей узлов кластера =====
 +
 +gate1 - бывший мастер,​ теперь бекап
 +
 +gate2 - бывший бекап, теперь мастер
 +
 +<​code>​
 +[gate1:~] # umount /opt
 [gate1:~] # gmirror status [gate1:~] # gmirror status
-      Name    Status ​ Components +[gate1:~] # gmirror deactivate gm0 ggate0 
-mirror/​gm0 ​ ​DEGRADED ​ ggate0 +[gate1:~] # gmirror deactivate gm0 ad1s1e 
-                      ad1s1e ​(1%)+[gate1:~] # gmirror unload 
 +[gate1:~] # ggatec list 
 +[gate1:~] # ggatec destroy -u 0 
 +[gate1:~] # killall -9 ggatec 
 +[gate1:~] # ggated 
 + 
 +[gate2:~] # killall ggated 
 +[gate2:~] # gmirror load 
 +[gate2:~] # gmirror label -v gm0 /​dev/​ad1s1e 
 +[gate2:~] # gmirror status 
 +[gate2:~] # fsck -y -t ufs /dev/mirror/​gm0 
 +[gate2:~] # mount /​dev/​mirror/​gm0 /opt 
 +[gate2:~] # ggatec create -t 10 -u 0 slave /dev/ad1s1e 
 +[gate2:~] # ggatec list 
 +[gate2:~] # gmirror insert gm0 ggate0
 </​code>​ </​code>​
 +
 +===== Остановка заркалирования =====
 +<​code>​
 +[gate2:~] # umount /opt
 +[gate2:~] # gmirror status
 +[gate2:~] # gmirror deactivate gm0 ggate0
 +[gate2:~] # gmirror deactivate gm0 ad1s1e
 +[gate2:~] # gmirror unload
 +</​code>​
 +
решение_gmirror_ggate.txt · Last modified: 2013/05/22 13:50 (external edit)