Bir sunucu, yedekli güç kaynaklarında iki APC UPS: Kapatma nasıl tetiklenir?


10

Bir sunucum var ve yedekli güç kaynakları iki APC Smart-UPS 3000 XLM'ye takılı. Her UPS iki farklı şebeke güç kaynağına bağlıdır.

Her biri kendi UPS'e bağlı iki apcupsd örneği çalışıyor. Her ikisi de bir UPS'in Aküde olduğunu algılayabilir ve her UPS daha sonra sunucuda bir kapanmayı tetikleyebilir.

Soru: SADECE BİR UPS akü biterse nasıl kapatılmaz?

Not: Smart-UPS 3000 XLM, eşine bağlanabilen ve durumunu algılayabilen bir "Power Sync" İşlevine sahiptir. Ancak fişi bir tanesinden çıkardığımda, Kapatma sırası yine de gönderildi. Kapanış komut dosyalarını "apcaccess" ile diğer ups kapalı olup olmadığını kontrol etmek için değiştirmeyi düşünüyorum. Bu konuda herhangi bir deneyim mutluluk duyacağız!

Yanıtlar:


13

Şu anda iki UPS'den biri öldüğünde, doshutdown olayı tetiklenir ve apccontrol yoluyla varsayılan komut dosyasını yürütür . Doshutdown defilenin bağlantılı değildir ve kapatma ile normalde ilerlerken senaryo, ikinci UPS yok sayar.

Sahip olmak için doshutdown olayları biraz bağlı, APCUPSd ihtiyaç özel olarak özelleştirilmiş yapılandırma dosyası iki örneğini. Fark, olay komut dosyalarının yürütülmesi gereken dizinde bulunur.

İlk inmelerin temel özellikleri, /etc/apcupsd/apcupsd.ups0.conf

SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events

Ve inişler için1, /etc/apcupsd/apcupsd.ups1.conf

SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events

Her scriptdir varsayılan betiklerin bir kopyasını almalıdır. Makineyi doğrudan kapatmayacak, ancak diğer UPS'in hala açık olup olmadığını veya kapatma modunda olup olmadığını kontrol
etmek zorunda olan doshutdown komut dosyasını özelleştirmek istiyoruz .

Üst kısmında doshutdown komut, biz böyle bir şey ekleyebilir

ups için

if [ ! -f /tmp/ups1.is.down ]
then
  touch /tmp/ups0.is.down
  exit 99
fi

ups için1

if [ ! -f /tmp/ups0.is.down ]
then
  touch /tmp/ups1.is.down
  exit 99
fi

99 durumunun apconcontrol'e devam eden eylemi durdurmasını söyleyen özel bir anlamı vardır . Beş satır, diğer UPS kapalı dosyasının oluşturulup oluşturulmadığını kontrol eder; eğer hiçbir aşağı-dosya up geride olmak ve çıkışlar için yaratılır. Evet ise , diğer UPS kapalıysa , bu da aşağı iniyor, bu yüzden komut dosyası devam etmeli ve makineyi kapatmalıdır.

Dosyalar /tmp/usp[01].is.down, ups [01] öğesinin halen kapalı olup olmadığını gösterir.

Önemli: Bir önceki oturumda oluşturulmuşlarsa, apcupsd init.d start betiği bu dosyaları kaldırmalıdır:

rm -f /tmp/usp[01].is.down

Son olarak, yukarıda oluşturulan dizinlere / etc / apcupsd / ups [01] 'e apcupsd kullanıcısına (veya örnekleri çalıştıran ilgili kullanıcılara) erişim verilmelidir .

chown -R apcupsd /etc/apcupsd/ups[01]

Lütfen ayrıntılı belgelere bir göz atın .

düzenleme/tmp/ups[01].is.down isimleri düzeltti .is, eksikti.


1
ve normal kullanıcılar /tmp/ups1.is.down ile sunucunuzu durdurabilir; /tmp/ups0.is.down öğesine dokunun: D Örneğin / var / run komutunu kullanmak daha iyi olur. Btw. Birisi çözümü kesip yapıştırırsa, rm -f /tmp/usp[01 Genişletilmiş.is.down bir yazım hatasıdır. Ve bu arada, /tmp/ups[01Uzaklı.is.down'ı, güç geri geldiğinde apccontrol'ün offbattery durumundan silmelisiniz.
Harka Gyozo

1
Diğerini kontrol etmeden ÖNCE kendi is.down dosyanıza dokunmanızı öneririm - şimdi olduğu gibi, her iki ups de aynı anda çıkarsa küçük bir yarış durumu penceresi olduğunu düşünüyorum.
Michael Kohne

4

NUT'a bak. Bunu iyi idare eder. Her bir UPS'ten gelen güç kaynağı sayısını ve gerekli güç kaynağı sayısını tanımlayın. KGK'da yeterli güç kaynağı olmadığı sürece kapatma tetiklenmeyecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.