Hello Everyone:
鵝試著要用HAST+UCARP兜storage/service level的HA. 如果把UCARP或是整台機器關掉,HAST/UCARP是可以在primary/master及secondary/backup間正確切換的. 不過鵝把Ethernet拔掉時,kernel有偵測到link down,但UCARP跑master的node並不會切到backup mode(照說是要掉到backup mode的,而且HAST要靠UCARP將其切成secondary mode). 更誇張的是,當鵝把原先跑backup mode的機器拔線之後,它會把自己切成master mode(因為收不到master的IP multicast了

). 這樣一來,當兩台機器都恢復online時,有可能會造成很大的混亂(因為兩台都自以為是primary/master,而HAST的metadata中並不包括timestamp,所以可能實際上offline那台的storage會把online那台的覆蓋掉)....
鵝發現UCARP的carp.c在其docarp(void)副程式中是以IFF_RUNNING來判斷master何時該切換成backup的....
請問一下有網友知道在BSD中,IFF_RUNNING是否反映出interface真正可用與否(照鵝在網路上找到linux相關討論的
What is the difference between IFF_UP and IFF_RUNNING似乎是這樣的,但由UCARP的表現看來並非如此),或是那句"resources allocated"的涵意到底是啥,Thanks!!
PS:照前面URL的說法,IFF_RUNNING主要是為了和BSD相容而來的,不過很冏的是,鵝發現UCARP在Linux上是正常的,而在BSD上就不work了,看來是目前的BSD不會處理IFF_RUNNING了

.....