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
решение_gmirror_ggate [2010/02/19 16:33]
val
решение_gmirror_ggate [2013/05/22 13:50] (current)
Line 1: Line 1:
 ====== Решение GMIRROR GGATE ====== ====== Решение GMIRROR GGATE ======
- 
-[[http://​www.freebsd.org/​doc/​en/​books/​handbook/​geom-mirror.html]] 
  
 [[http://​www.freebsd.org/​doc/​en/​books/​handbook/​geom-ggate.html]] [[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 
 + 
 +[gate2:~] # gmirror status
 </​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.1266586411.txt.gz · Last modified: 2013/05/22 13:50 (external edit)