11.9. 컴퓨팅 노드를 Timemaster와 동기화
이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.
시간 프로토콜을 사용하여 시스템 간 일관된 타임스탬프를 유지 관리합니다.
RHOSP(Red Hat OpenStack Platform)에는 PTP(Precision Time Protocol) 및 NTP(Network Time Protocol)가 지원됩니다.
NTP를 사용하여 밀리 초 범위에서 네트워크의 클럭을 동기화할 수 있으며 PTP를 사용하여 더 높은 마이크로초 단위의 정확도에 클럭을 동기화할 수 있습니다. PTP의 사용 사례는 가상 무선 액세스 네트워크(vRAN)로, 처리량이 증가하여 더 많은 간섭의 위험을 나타내는 여러 개의 radio access network(vRAN)가 포함되어 있습니다.
Timemaster는 chronyd
또는 ntpd
와 함께 ptp4l
및 phc2sys
를 사용하여 시스템 클럭을 NTP 및 PTP 시간 소스에 동기화하는 프로그램입니다. phc2sys
및 ptp4l
프로그램은 SHM(Share Shared Memory Driver) 참조 클럭을 사용하여 PTP 시간을 chronyd
또는 ntpd
에 전송하여 시스템 시계를 동기화하는 시간 소스를 비교합니다.
RHEL(Red Hat Enterprise Linux) 커널에서 PTPv2 프로토콜의 구현은 linuxptp
입니다.
linuxptp
패키지에는 PTP 경계 클럭 및 일반 클럭 동기화를 위한 ptp4l
프로그램과 하드웨어 타임스탬프를 위한 phc2sys
프로그램이 포함되어 있습니다. PTP에 대한 자세한 내용은 Red Hat Enterprise Linux 시스템 관리자 가이드의 PTP 소개 를 참조하십시오.
chrony는 NTP 프로토콜의 구현입니다. Chrony의 두 가지 주요 구성 요소는 Chrony 데몬인 chronyd
와 Chrony 명령줄 인터페이스인 chronyc
입니다.
Chrony에 대한 자세한 내용은 Red Hat Enterprise Linux 시스템 관리자 가이드에서 Chrony 모음을 사용하여 NTP 구성 을 참조하십시오.
다음 이미지는 PTP 구성에서 패킷 이동에 대한 개요입니다.
그림 11.1. PTP 패킷 이동 개요
다음 이미지는 PTP 구성의 컴퓨팅 노드에서 패킷 이동에 대한 개요입니다.
그림 11.2. PTP 패킷 이동 세부 정보
11.9.1. Timemaster 하드웨어 요구 사항
다음과 같은 하드웨어 기능이 있는지 확인합니다.
- 하드웨어 타임스탬프 기능을 사용하여 NIC를 구성했습니다.
- 멀티 캐스트 패킷을 허용하도록 스위치를 구성했습니다.
- 스위치가 경계 또는 투명한 클록으로 작동하도록 구성되었습니다.
ethtool -T <device> 명령을 사용하여 하드웨어 타임스탬프를 확인할 수 있습니다
.
$ ethtool -T p5p1 Time stamping parameters for p5p1: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 6 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) ptpv1-l4-sync (HWTSTAMP_FILTER_PTP_V1_L4_SYNC) ptpv1-l4-delay-req (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) ptpv2-event (HWTSTAMP_FILTER_PTP_V2_EVENT)
투명성 또는 경계 클럭 스위치를 사용하여 정확도와 대기 시간을 줄일 수 있습니다. 경계 클록에 uplink 스위치를 사용할 수 있습니다. 경계 클럭 스위치는 PTPv2 헤더에서 8비트 correctionField
를 사용하여 지연 변형을 수정하고 최종 클록에서 정확성을 높입니다. 투명한 클럭 스위치에서 최종 클록은 correctionField
가 아닌 지연 변형을 계산합니다.
11.9.2. Timemaster 구성
오버클라우드 노드에서 시간 동기화를 위한 기본 RHOSP(Red Hat OpenStack Platform) 서비스는 OS::TripleO::Services::Timesync
입니다.
알려진 제한 사항
- 가상화된 컨트롤러의 NTP를 활성화하고 베어 메탈 노드에 PTP를 활성화합니다.
-
ptp4l
에 호환되는 PTP 장치가 필요하기 때문에 virtio 인터페이스는 호환되지 않습니다. -
SR-IOV가 있는 VM에 물리적 기능(PF)을 사용합니다. VF(가상 기능)는 PTP에 필요한 레지스터를 노출하지 않으며 VM은
kvm_ptp
를 사용하여 시간을 계산합니다. - 여러 소스 및 여러 네트워크 경로가 있는 HA(고가용성) 인터페이스가 호환되지 않습니다.
프로세스
선택한 역할에 속하는 노드에서 Timemaster 서비스를 활성화하려면 해당 역할의
roles_data.yaml
파일 섹션에서OS::TripleO::Services::Timesync
가 포함된 행을OS::TripleO::Services::TimeMaster
라인으로 교체합니다.#- OS::TripleO::Services::Timesync - OS::TripleO::Services::TimeMaster
사용하는 compute 역할의 heat 매개변수를 구성합니다.
#Example ComputeSriovParameters: PTPInterfaces: ‘0:eno1,1:eno2’ PTPMessageTransport: ‘UDPv4’
사용자 환경과 관련된 다른 환경 파일과 함께
openstack overcloud deploy
명령에 새 환경 파일을 추가합니다.$ openstack overcloud deploy \ --templates \ … -e <existing_overcloud_environment_files> \ -e <new_environment_file1> \ -e <new_environment_file2> \ …
- 을 기존 배포의 일부인 환경 파일 목록으로 바꿉니다 <existing_overcloud_environment_files>.
- <new_environment_file>을 오버클라우드 배포 프로세스에 포함할 새 환경 파일 또는 파일로 바꿉니다.
검증
ptp4linux
와 함께 설치된phc_ctl
명령을 사용하여 NIC 하드웨어 클록을 쿼리합니다.# phc_ctl <clock_name> get # phc_ctl <clock_name> cmp
11.9.3. timemaster 설정 예
$ cat /etc/timemaster.conf # Configuration file for timemaster #[ntp_server ntp-server.local] #minpoll 4 #maxpoll 4 [ptp_domain 0] interfaces eno1 #ptp4l_setting network_transport l2 #delay 10e-6 [timemaster] ntp_program chronyd [chrony.conf] #include /etc/chrony.conf server clock.redhat.com iburst minpoll 6 maxpoll 10 [ntp.conf] includefile /etc/ntp.conf [ptp4l.conf] #includefile /etc/ptp4l.conf network_transport L2 [chronyd] path /usr/sbin/chronyd [ntpd] path /usr/sbin/ntpd options -u ntp:ntp -g [phc2sys] path /usr/sbin/phc2sys #options -w [ptp4l] path /usr/sbin/ptp4l #options -2 -i eno1
11.9.4. timemaster 작업 예
$ systemctl status timemaster ● timemaster.service - Synchronize system clock to NTP and PTP time sources Loaded: loaded (/usr/lib/systemd/system/timemaster.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2020-08-25 19:10:18 UTC; 2min 6s ago Main PID: 2573 (timemaster) Tasks: 6 (limit: 357097) Memory: 5.1M CGroup: /system.slice/timemaster.service ├─2573 /usr/sbin/timemaster -f /etc/timemaster.conf ├─2577 /usr/sbin/chronyd -n -f /var/run/timemaster/chrony.conf ├─2582 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.0.conf -H -i eno1 ├─2583 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.0.socket -t [0:eno1] -n 0 -E ntpshm -M 0 ├─2587 /usr/sbin/ptp4l -l 5 -f /var/run/timemaster/ptp4l.1.conf -H -i eno2 └─2588 /usr/sbin/phc2sys -l 5 -a -r -R 1.00 -z /var/run/timemaster/ptp4l.1.socket -t [0:eno2] -n 0 -E ntpshm -M 1 Aug 25 19:11:53 computesriov-0 ptp4l[2587]: [152.562] [0:eno2] selected local clock e4434b.fffe.4a0c24 as best master