Инсталиране и настройка на NTP клиент под CentOS 7 и Scientific Linux 7Съдържание:
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 install chrony
3. Настройка на NTP клиента върху система, която не е част от HPCПо подразбиране, след като инсталирате пакета chrony, не е нужно да правите никакви специални настройки във файла # systemctl restart chronyd и да се убедите, че ще се стартира при зареждане на системата: # systemctl enable 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 секунди след рестартирането/стартирането на демона # 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 комуникацията и проверката на подписването. Това се извършва на базата на споделен ключ, който следва да се намира във файла Уверете се, че достъп до файла # chown root:chrony /etc/chrony.keys # chmod 640 /etc/chrony.keys След като ключът бъде генериран и обменен между администратора на NTP сървъра и този на NTP клиента (последният е този, който ще реализира конфигурацията, описана по-долу), копие от ключа трябва да се постави на отделен ред в XXX SHA256 HEX:AC689194E54B3BA47E4E8E6CFC000764F6F619CEFFBDB282BB76A7F568CBDE59 (ключът е генериран съгласно процедурата описана в част 4 на документа "Инсталиране и настройка на NTP сървър под CentOS 7 и Scientific Linux 7"). В конкретния случай, стринга "XXX" ще представлява уникално цяло число (никой друг ключ в След това, създайте резервно копие на файла # cp /etc/chrony.conf /etc/chrony.conf.orig Отворете файла 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" стои в края на декларацията на референтен сървър). След като запазите така направените промени в # systemctl restart chronyd и се убедете, че той ще се стартира при зареждане на системата: # systemctl enable chronyd Добре е след тези промени да проверите статуса на # systemctl status chronyd Ако няма проблеми с новите деклрации, направени във файла ● 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 секунди след рестартирането/стартирането на демона # 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") файлове: |
Последна актуализация: 31 май 2019
2019 УНИТе, Веселин Колев