УНИТе

Портал > Документация > Инсталиране и настройка на NTP клиент под CentOS 7 и Scientific Linux 7

Инсталиране и настройка на NTP клиент под CentOS 7 и Scientific Linux 7

Съдържание:

  1. Предварителна информация
  2. Инсталиране на NTP софтуера
  3. Настройка на NTP клиента върху система, която не е част от HPC
  4. Настройка на NTP клиента върху система, която е част от HPC

 

1. Предварителна информация

В добре проектираната и поддържана HPC инфраструктура, всички изчислителни сървъри използват специално изграден за техните нужди локален NTP сървър. Това позволява всички изчислителни сървъри да сверят часовниците си спрямо един и същ източник на време, използвайки NTP клиент. Подобно йерархично подчинение на сверяването помага лесно да бъде проследено едно и също събитие, протичащо едновремено върху два или повече изчислителни сървъри, записи за което могат да бъдат намерени в журналните ("log") файлове на сървърите (в тези записи има и времето, с точност до секунда или милисекунда). Също така, някои изчислителни процеси, които се изпълняват паралелно на няколко изчислителни сървъра, се нуждаят от прецизно сверени локални часовници на сървърите и ако такова сверяване липсва, може да се стигне до забавяне на изчислитенията или техния провал.

По подразбиране, дистрибуциите CentOS 7 и Scientific Linux 7 предлагат пакета chrony, който може (в зависимост от конфигурацията) да се използва за изграждането и на NTP сървър, и на NTP клиент. Този документ показва как на базата на пакета chrony да бъде изграден NTP клиент, за сверяване на времето в часовниците на системите в HPC инфраструктура.

 

2. Инсталиране на NTP софтуера

В зависимост от инсталираната дистрибуция, вие може да имате или не инсталиран пакета chrony. Винаги е добре да проверите дали той е инсталиран, изпълнявайки следния команден ред (не е нужно да сте супер потребител):

$ rpm -q chrony

Ако пакетът е инсталиран, ще бъде изведена информация за името и версята на пакета:

chrony-3.2-2.el7.x86_64

В случай, че не бъде изведена информация за пакета, трябва да инсталирате chrony чрез yum и след това да го стартирате (с права на супер потребител):

# yum install chrony

 

3. Настройка на NTP клиента върху система, която не е част от HPC

По подразбиране, след като инсталирате пакета chrony, не е нужно да правите никакви специални настройки във файла /etc/chrony.keys (файла с декларации, които се чете от демона chronyd при стартирането (рестартирането) му). По подразбиране този файл идва с всички нужни настройки за реализацията на NTP клиента. В този случай е достатъчно след инсталирането на пакета chrony да рестартирате демона chronyd:

# systemctl restart chronyd

и да се убедите, че ще се стартира при зареждане на системата:

# systemctl enable chronyd

Ако искате да се уверите, че демонът chronyd рабори, изпълнете:

# systemctl status chronyd

В случай, че демонът работи както трябва, ще видите статус "active(running)" в изхода от изпълнението на горния команден ред (вижте съобщенията, маркирани в зелено по-долу):

 chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-04-03 23:58:22 EEST; 12min ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 21592 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 21599 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 21591 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─21591 /usr/sbin/chronyd

Изчакайте поне 10-15 секунди след рестартирането/стартирането на демона chronyd и проверете хода на сверяването, изпълнявайки:

# chronyc tracking

При успешно сверяване, ще видите информация подобна на следната:

Reference ID    : C63C16F0 (clock.xmission.com)
Stratum         : 2
Ref time (UTC)  : Thu Apr 04 00:39:25 2019
System time     : 0.000020327 seconds fast of NTP time
Last offset     : +0.000079083 seconds
RMS offset      : 0.000288492 seconds
Frequency       : 3.504 ppm slow
Residual freq   : +0.004 ppm
Skew            : 0.089 ppm
Root delay      : 0.018971428 seconds
Root dispersion : 0.001927404 seconds
Update interval : 521.8 seconds
Leap status     : Normal

При липсата на комуникация с референтния сървър, ще виждате следното (забележете "Not synchronised" в края):

Reference ID    : 00000000 ()
Stratum         : 0
Ref time (UTC)  : Thu Jan 01 00:00:00 1970
System time     : 0.000000000 seconds slow of NTP time
Last offset     : +0.000000000 seconds
RMS offset      : 0.000000000 seconds
Frequency       : 3.397 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.000 ppm
Root delay      : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status     : Not synchronised

 

4. Настройка на NTP клиента върху система, която е част от HPC

Когато NTP клиент, базиран на пакета chrony, ще сверява локалния системен часовник на сървър от HPC инфраструктурата, той трябва да използва ключ, чрез който да установява автентичността на референтния сървър при комуникацията с него. Проверката на автентичността е базирана на цифрово подписване на NTP комуникацията и проверката на подписването. Това се извършва на базата на споделен ключ, който следва да се намира във файла /etc/chrony.keys. Процедурата по генерирането на ключа е описана в част 4 на документа "Инсталиране и настройка на NTP сървър под CentOS 7 и Scientific Linux 7".

Уверете се, че достъп до файла /etc/chrony.keys имат само супер потребителя и демона chronyd:

# chown root:chrony /etc/chrony.keys
# chmod 640 /etc/chrony.keys

След като ключът бъде генериран и обменен между администратора на NTP сървъра и този на NTP клиента (последният е този, който ще реализира конфигурацията, описана по-долу), копие от ключа трябва да се постави на отделен ред в /etc/chrony.keys. Този ред ще изглежда подобно на:

XXX SHA256 HEX:AC689194E54B3BA47E4E8E6CFC000764F6F619CEFFBDB282BB76A7F568CBDE59

(ключът е генериран съгласно процедурата описана в част 4 на документа "Инсталиране и настройка на NTP сървър под CentOS 7 и Scientific Linux 7"). В конкретния случай, стринга "XXX" ще представлява уникално цяло число (никой друг ключ в /etc/chrony.keys не бива да има това число за цифров идентификатор). Ако има повторение, трябва да обсъдите смяна на този номер с администратора на реферетния NTP сървър (за това не е нужно да се прегенерира ключа, а само да се смени номера).

След това, създайте резервно копие на файла /etc/chrony.conf, в случай, че се наложи да върнете в сила подразбиращите се настройки на chrony (преди задаването на ключа):

# cp /etc/chrony.conf /etc/chrony.conf.orig

Отворете файла /etc/chrony.conf, изтрийте подразбиращото се съдържание, което се намира там и го заменете със следните декларации (предполага се, че референтния NTP сървър, спрямо кой ще става сверяването на локалния часовник е с IPv4 адрес 192.168.122.100):

server 192.168.122.100 iburst key XXX
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
log measurements statistics tracking

Забележете къде се указва номера на ключа в конфигурационния файл (стринга "XXX" стои в края на декларацията на референтен сървър). След като запазите така направените промени в /etc/chrony.conf, рестартирайте демона chronyd:

# systemctl restart chronyd

и се убедете, че той ще се стартира при зареждане на системата:

# systemctl enable chronyd

Добре е след тези промени да проверите статуса на chronyd, изпълнявайки:

# systemctl status chronyd

Ако няма проблеми с новите деклрации, направени във файла /etc/chrony.conf, ще видите статус "active(running)" (вижте съобщенията, маркирани в зелено по-долу):

 chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-04-03 23:58:22 EEST; 12min ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 21592 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 21599 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 21591 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─21591 /usr/sbin/chronyd

Изчакайте поне 10-15 секунди след рестартирането/стартирането на демона chronyd и проверете хода на сверяването, изпълнявайки:

# chronyc tracking

При успешно сверяване, ще видите информация подобна на следната:

Reference ID    : C0A87A55 (192.168.122.100)
Stratum         : 3
Ref time (UTC)  : Thu Apr 04 00:44:12 2019
System time     : 0.000007389 seconds fast of NTP time
Last offset     : +0.000006952 seconds
RMS offset      : 0.000071046 seconds
Frequency       : 3.536 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.025 ppm
Root delay      : 0.019659419 seconds
Root dispersion : 0.001439634 seconds
Update interval : 521.9 seconds
Leap status     : Normal

При липсата на комуникация с референтния сървър, ще виждате следното (забележете "Not synchronised" в края):

Reference ID    : 00000000 ()
Stratum         : 0
Ref time (UTC)  : Thu Jan 01 00:00:00 1970
System time     : 0.000000000 seconds slow of NTP time
Last offset     : +0.000000000 seconds
RMS offset      : 0.000000000 seconds
Frequency       : 3.397 ppm slow
Residual freq   : +0.000 ppm
Skew            : 0.000 ppm
Root delay      : 1.000000000 seconds
Root dispersion : 1.000000000 seconds
Update interval : 0.0 seconds
Leap status     : Not synchronised

Допълнителна информация относно сверяването, която може да помогне при анализ и отстраняване на проблеми, може да намерите в следните журнални ("log") файлове: measurements.log, statistics.log и tracking.log.

 


Последна актуализация: 31 май 2019

2019 УНИТе, Веселин Колев