linux集群时钟问题

一、ntpd与ntpdate的区别:

    摘自:ntpd与ntpdate的区别 - 百事乐 - 博客园  http://www.cnblogs.com/liuyou/archive/2012/07/29/2614330.html

1.区别:

  ntpd是调整时间,即将时间一点一点的校准过来,最终把时间慢慢校正对;

  ntpdate是校准时间,即直接调整时间,并不会考虑其他程序,直接结果是时钟跃变。

2.时钟跃变的后果

  很多应用程序依赖连续的时钟,即取得的时间是线性的, 基于一个事实:时间不会往回跳跃。 

 但是ntpdate校准时间的方式就是所谓的“跃变”:在获得一个时间之后,ntpdate使用settimeofday(2)设置系统时间,这有几个非常明显的问题:

第一,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差??或者说 Local Clock 的自然漂移(drift)??记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

3.结论:谨慎使用ntpdate!!!

二、linux集群时钟同步的一个方案

  方案的思路:在本地假设一台NTP服务器,用来校准整个集群的时钟。

  本文的实验环境:CentOS 6.6,64位版本(若读者选用的是Ubuntu的机器,可以参考下面的参考网址)

实验步骤记录如下:

首先,校准NTP服务器的时间:

1.选择一台机器作ntp服务器,设置时区:

  # date                 可以在操作前先查看一下当前系统时间

  # tzselect     依次选择5亚洲、13香港、然后按照提示确认保存即可。

   # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime      #覆盖默认时区

2.校准网络时间:

# ntpdate cn.pool.ntp.org

3.将当前时间写入硬盘,确保重启有效:

  # hwclock -w

然后,安装、配置并启动NTP服务,并将其本地时间作为时钟供给源,以保证在集群断网的情况下,仍然可以提供时钟校准服务

1.安装ntp服务(会自动安装两个组件ntpd 和 nptdate)

  # yum -y install ntp

2.修改配置文件

  #vim /etc/ntp.conf

在后面添加:

  server 127.127.1.0

  Fudge 127.127.1.0 stratum 10

注:如果集群是在一个封闭的局域网内,可以屏蔽掉默认的server,将下面几行注释掉

  #server 0.centos.pool.ntp.org iburst
  #server 1.centos.pool.ntp.org iburst
  #server 2.centos.pool.ntp.org iburst
  #server 3.centos.pool.ntp.org iburst

3.配置客户端的授权:设置指定网段内的机器才有访问NTP 服务器的权限:

  restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

说明:本地192.168.1.x网段内的机器可以在本服务器上查询和同步时间

注:

[restrict]参数设定方式:

其中parameter的参数主要有:
  ignore            拒绝所有类型的ntp连接
  nomodify        客户端不能使用ntpc与ntpq两支程式来修改服务器的时间参数
  noquery         客户端不能使用ntpq、ntpc等指令来查询服务器时间,等于不提供ntp的网络校时
  notrap           不提供trap这个远程时间登录的功能
  notrust          拒绝没有认证的客户端
  nopeer          不与其他同一层的ntp服务器进行时间同步

4.设置ntp客户端:

  在所有的ntp客户端上,设置时区与NTP 服务器的一致,参照前面的操作,然后修改配置文件:

  # vim /etc/ntp.conf

  添加:

  server xxx.xxx.xxx.xxx      (xxx...即NTP服务器的IP)

5.在所有的机器上同步时间,保证与NTP服务器一致

  # ntpdate  NTP服务器地址

6、启动ntp服务

  # service ntpd start

参考:

  hadoop在linux系统下的集群时间同步-编程中国社区  http://www.hello-code.com/group/Hadoop/201407/1291.html

  配置NTP服务ntpd/ntp.conf(搭建Hadoop集群可参考) - Laurence的技术博客 - 博客频道 - CSDN.NET  http://blog.csdn.net/bluishglc/article/details/41413031

时间: 2024-11-29 07:18:58

linux集群时钟问题的相关文章

Linux集群监控工具简介:Ganglia和Nagios

11年时候,曾经对 Ganglia 和 Nagios有一定接触,这是两个用于监视数据中心的工具.这两个工具被大量用于高性能计算(HPC)环境中,但是它们对于其他环境也具有很大的吸引力(例如云.呈现集群和托管中心).此外,两者对监视的定义也采取了不同的侧重点.Ganglia 更多地与收集度量数据并随时跟踪这些数据有关,而 Nagios 一直致力于成为一种报警机制. 真么多年过去了,这两个工具还是挺有用的.,这里有一定的介绍:http://os.51cto.com/art/201104/255361

Linux 集群使用 Shell 脚本自动完成免密登录

在部署 Linux 集群环境的时候,时钟同步 (NTP) 必定用到,而某些时候可能也需要用到主机免密登录,5 节点以下还可以手动配置,但如果节点规模较大,则需要考虑自动化了. 使用 Shell 脚本简单快速,上手容易. 代码如下,请自行按需要修改,比较容易理解. #!/bin/bash # by liuxg # 2019.05.15 # passwdless.sh # echo # -n 不要在最后自动换行 # -e 处理特殊字符 # expect是一个免费的编程工具语言,用来实现自动和交互式任

新书《Linux集群和自动化运维》目录

推荐序一 在全球"互联网+"的大背景下,互联网创业企业的数量如雨后春笋般大量产生并得到了快速发展!对"互联网+"最有力的支撑就是Linux运维架构师.云计算和大数据工程师,以及自动化开发工程师等! 但是,随着计算机技术的发展,企业对Linux运维人员的能力要求越来越高,这就使得很多想入门运维的新手不知所措,望而却步,甚至努力了很久却仍然徘徊在运维岗位的边缘:而有些已经工作了的运维人员也往往是疲于奔命,没有时间和精力去学习企业所需的新知识和新技能,从而使得个人的职业发

为Linux集群创建新账户,并配置hadoop集群

转自:http://blog.csdn.net/bluesky8640/article/details/6945776 之前装python.jdk.hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不被建议的,所以只能用hod账户再重新装一遍. 创建用户.设置密码.修改用户.删除用户: useradd testuser   创建用户testuserpasswd testuser

Linux集群系列之一——集群基础概念

PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务) 在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施. 如有不善,多提意见(QQ:1595068971-邮箱:[email protected]) 负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力 衡量标准: 病发处理能力(一次性能够处理多少个请求) 高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性 衡量标准:在线时间 / (在线时间+故障处理时间) 99%,99.9%,

linux集群系列(1) --- Linux集群系统基础

一.简介     1.1. Linux集群系统包括集群节点和集群管理器两部分. 集群节点有时简称为节点.服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作.一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件.应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件. Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点.集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,

linux集群spark环境配置

第一章 linux集群spark环境配置一 Spark下载地址; http://spark.apache.org/downloads.html 图1 下载spark 图2 选择下载地址 Spark本身用scala写的,运行在JVM之上.JAVA版本:java 6 /higher edition.Jdk已经安装(版本) Hadoop提供存储数据的持久化层版本:hadoop-1.2.1Spark和scala需要安装在master和slave上面,配置步骤相同本次搭建的master为cluster,s

Linux集群-负载均衡lvs介绍及lvs-nat实现https

一.Linux集群 Linux集群系统保护集群管理器和集群节点两部分组成.集群节点简称为节点.服务器或服务器节点,是用来提供资源,进行集群的实际工作.一般来说,它必须进行配置后才能称为集群的一部分,同时也要运行集群用到的应用程序.Linux集群管理器再将各节点捆绑在一起,它用于将任务分解到所有的节点.简单的说,就是按照某种方式把服务器连起来来完成一种特定的任务,提高服务器的响应能力. scale on 在单台主机上提高服务器性能, scale out 增加服务器的数量来提高,负载均衡的集群. 二

Linux集群概念简介

集群的概念 什么是集群? 集群是一组协同工作的服务实体,用以提供比单一服务实体更具有扩展性和可用性的服务平台.所谓服务实体说白了就是服务器.因此,多台服务器同时协同工作,在某种情况下,可以大大提升服务的能力. 集群的类型 根据不同的需求以及应用场景,集群分为三种类型: 负载均衡集群:Load Balancing,简称LB集群,它是根据调度器或者分发器(Director)中的某种调度算法,将客户端发送过来的请求转发给后台的真实服务器进行处理,从而达到负载均衡的能力.该集群主要是提高服务器的高负载服