zoukankan      html  css  js  c++  java
  • 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

         server ntp.sjtu.edu.cn prefer

    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
      # chkconfig nptd on  #设置开机自动启动
    注意:nptd服务启动的时候,nptdate无法使用
    参考:
      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
         ntp时间同步,各种配置方法 - bingfeng - 博客园  http://www.cnblogs.com/mybook/archive/2012/11/06/2757597.html
     
     
     
     
  • 相关阅读:
    用 ArcMap 发布 ArcGIS Server FeatureServer Feature Access 服务 PostgreSQL 版本
    ArcMap 发布 ArcGIS Server OGC(WMSServer,MapServer)服务
    ArcScene 创建三维模型数据
    ArcMap 导入自定义样式Symbols
    ArcMap 导入 CGCS2000 线段数据
    ArcMap 导入 CGCS2000 点坐标数据
    ArcGis Server manager 忘记用户名和密码
    The view or its master was not found or no view engine supports the searched locations
    python小记(3)操作文件
    pytest(2) pytest与unittest的区别
  • 原文地址:https://www.cnblogs.com/chinas/p/5837297.html
Copyright © 2011-2022 走看看