0.前言
    需求是这么来的,搭建了Storm集群进行协同过滤算法的计算性能测试,要求精度在毫秒(ms)级别。局域网内40个虚拟机节点,用 date 命令,精度上和效率上都不可行。所以,就搭建了 NTP 服务器。
1.简介
    简单的说就是选择几部主要主机 (Primary server) 调校时间,让这些 Primary Servers 的时间同步之后,再开放网络服务来让 Client 端联机,最后使Client 端调整自己的时间。NTP(Network Time Protocol)就是实现这个过程的一个网络时间协议。它是一个跨越广域网或局域网的复杂的同步时间协议,可使得机器获得毫秒级的精度。NTP协议是OSI参考模型的高层协议,符合UDP传输协议格式,拥有专用端口(Port)123。随着时间的推移,计算机的时钟(硬件时钟)会倾向于漂移。网络时间协议(NTP)即可为路由器、交换机、工作站和服务器之间提供一种时间同步的机制。
详情:http://www.ntp.org/ (官网链接)

2.本次实验环境

    操作系统: SUSE Linux Enterprise Server 11 (x86_64)
    NTP版本:ntpq 4.2.4p8@1.1612-o Sat May  8 09:39:49 UTC 2010 (1) (系统自带,也可自行下载安装)
    局域网时间服务器IP:172.18.65.1
    客户端同步机器IP:172.18.65.2~172.18.65.41 (40台)

3.服务器搭建步骤

    1.选择局域网内一个机器作为时间同步服务器(172.18.65.1)
    2.修改服务器端NTP的主要配置文件ntp.conf(默认路径为:/etc/ntp.conf)
    $vim /etc/ntp.conf

server 127.127.1.0              # local clock (LCL)
fudge 127.127.1.0 stratum 10 # LCL is unsynchronized
##
## Add external Servers using
## # rcntp addserver <yourserver>
##
##
## Miscellaneous stuff
##
driftfile /var/lib/ntp/drift/ntp.drift # path for drift file
logfile /var/log/ntp # alternate log file
# logconfig =syncstatus + sysevents
# logconfig =all
# statsdir /tmp/ # directory for statistics files
# filegen peerstats file peerstats type day enable
# filegen loopstats file loopstats type day enable
# filegen clockstats file clockstats type day enable
#
# Authentication stuff
#
keys /etc/ntp.keys # path for keys file
trustedkey 1 # define trusted keys
requestkey 1 # key (7) for accessing server variables
# controlkey 15 # key (6) for accessing server variables
    增加OR修改以下内容:
    restrict default ignore
    restrict 172.18.65.0 mask 255.255.255.0 nomodify notrap
    #restrict [你的IP] mask [netmask_IP] [parameter]
    #其中 parameter 的参数主要有底下这些:
  • ignore: 拒绝所有类型的 NTP 联机;
  • nomodify: 客户端不能使用 ntpc 与 ntpq 这两支程序来修改服务器的时间参数, 但客户端仍可透过这部主机来进行网络校时的;
  • noquery: 客户端不能够使用 ntpq, ntpc 等指令来查询时间服务器,等于不提供 NTP 的网络校时啰;
  • notrap: 不提供 trap 这个远程事件登录 (remote event logging) 的功能。
  • notrust: 拒绝没有认证的客户端。
     3.配置文件就ok了,启动NTP服务器
       172.18.65.1下启动NTP服务器:service ntp start   或者   /etc/init.d/ntp start
     4.手工发起同步(由于Suse Linux在11版本中摒弃了ntpdate命令,采用新的sntp命令进行操作)
       在各个客户端机器上执行:sntp -P no -r 172.18.65.1
       这样就进行了各客户端与服务器的时间同步。
     5.每隔一段时间,客户端自动同步
       $crontab -e
       添加一条如:* 2 * * * * sntp -P no -r 172.18.65.1   #每隔2个小时,客户端与服务器同步一次
4.查看NTP运行状态命令

      $ntpq -q 
      
     ntpq -p 可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:
  • remote:亦即是 NTP 主机的 IP 或主机名啰~注意最左边的符号

    • 如果有『 * 』代表目前正在作用当中的上层 NTP。本实验中时间服务器是自身同步,所以显示为LOCAL(0)
    • 如果是『 + 』代表也有连上线,而且可作为下一个提供时间更新的候选者。
  • refid:参考的上一层 NTP 主机的地址
  • st:就是 stratum 阶层啰!
  • when:几秒钟前曾经做过时间同步化更新的动作;
  • poll:下一次更新在几秒钟之后;
  • reach:已经向上层 NTP 服务器要求更新的次数
  • delay:网络传输过程当中延迟的时间,单位为 10^(-6) 秒
  • offset:时间补偿的结果,单位与 10^(-3) 秒
  • jitter:Linux 系统时间与 BIOS 硬件时间的差异时间, 单位为 10^(-6) 秒。
5.实验接着做
    按理说,照着这个步骤来,完全就实现了这个41台机器的局域网时间同步。但是,我还是想知道在任意时刻,
各个客户端与服务器的时间误差到底是多少(实验要求,必须精确到毫秒级别,但是没有证据表明时间同步到毫秒级别了)。
考虑在使用ntpq -p命令查看状态时,有时间补偿的offset项,该项表明本时间服务器与上一级时间服务器的同步时间误差。
所以,将剩下的40个客户端均设置为服务器,且将172.18.65.1作为上级服务器。这样就能通过ntpq -p命令查看时间同步误差了。
   修改客户端的主要配置文件ntp.conf部分内容如下:
   restrict default ignore
   server 172.18.65.1 prefer  #perfer表示优先将该Server IP 作为时间源
   restrict 172.18.65.0 mask 255.255.255.0 nomodify notrap
   fudge  127.127.1.0 stratum 10   # LCL is unsynchronized
 
   #利用server设定上层NTP服务器,上层NTP服务器的设定方式为:  
   #server    [IP OR HOSTNAME]    [PREFER]    
   #参数说明:  
   #ip or hostname :上层ntp服务器的ip地址或者域名  
   #prefer : 表示优先使用的主机  
   同步以及查看步骤如下:
   172.18.65.1下启动NTP服务器:service ntp start   或者   /etc/init.d/ntp start

各客户端下启动服务器:service ntp start 

   

   可以看到时间同步误差为-0.479ms,在毫秒级别,完全符合实验要求。
 

SUSE Linux实现局域网时间同步的更多相关文章

  1. suse 12 部署chrony时间同步服务器

    文章目录 1.ntp和chrony的区别 1.1.关于chrony 1.2.chronyd的优势 2.环境介绍 3.部署chrony 4.配置chrony 4.1.配置文件解析 4.2.查看chron ...

  2. 为 suse linux 设置程序自动启动

    1.suse linux 程序自动启动 在部署面安装的的时候,重启之后需要去tomcat/bin/startup.sh 下面去执行启动脚本. 设置开机自动启动该服务    在 vim   /etc/i ...

  3. 第一种SUSE Linux IP设置方法

    第一种SUSE Linux IP设置方法ifconfig eth0 192.168.1.22 netmask 255.255.255.0 uproute add default gw 192.168. ...

  4. suse linux 10 下配置vpn服务器(pptp)

     一.安装所需的软件包:      pptpd-*.rpm      ppp-*.rpm      pptp-*.rpm     一般情况下系统已经将pptp和ppp包安装好了,所以只需安装pptpd ...

  5. SuSE Linux 开启VNC服务

    一.启动VNC服务输入命令 vncserver  二.编辑启动脚步vi /root/.vnc/xstartup 把twm &注释改为#twm & 然后再最下面增加2行startgnom ...

  6. SUSE Linux下新建Weblogic 10.3非admin服务

    Linux内核版本信息查询命令 cat /proc/version 显示内容为: Linux version 2.6.16.60-0.85.1-smp(geeko@buildhost) (gcc ve ...

  7. SUSE Linux 13服务器版

    SUSE Linux 下面打开图形界面下的终端 桌面右键,选择运行 konsole命令打一桌面终端插件 配置静态ip /etc/sysconfig/network/ 虚拟机下面的网卡 vi /etc/ ...

  8. 用于 ‘Suse‘ Linux 包管理的 Zypper 命令大全

    SUSE( Software and System Entwicklung,即软件和系统开发.其中‘entwicklung‘是德语,意为开发)Linux 是由 Novell 公司在 Linux 内核基 ...

  9. SUSE Linux Enterprise Server 设置IP地址、网关、DNS

    说明: ip:192.168.21.172 子网掩码:255.255.255.0 网关:192.168.21.2 dns:8.8.8.8 8.8.4.4 1.设置ip地址 vi /etc/syscon ...

随机推荐

  1. MySql中常用语句

    1.查询语句: SELECT  查询字段  FROM  表名   WHERE 条件 查询字段可以使用 通配符* 字段名 别名(把长的名字命名一个别名,比较短的) 通配符:SELECT * FROM ' ...

  2. 【WPF】Dispatcher及线程操作

    WPF 应用程序启动后,会有两个线程: 1. 一个是用来处理UI呈现(处理UI的请求,比如输入和展现等操作). 2. 一个用来管理 UI的 (对UI元素及整个UI进行管理). 像Winform一样,W ...

  3. block的用法和循环引用

    一.block在OC中的用法可以分为大概一下几种. 1>用于成员属性,保存一段代码,可以替代代理传值. 比如说,创建一个ViewController控制器,点击屏幕就跳转到ModalViewCo ...

  4. [简历] JAVA 软件工程师

    首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力. Feature:是什么 Advantage:比别人好在哪些地方 Benefit:如果雇佣你,招聘方会得到什么好处 其次,写简历和写议论 ...

  5. HttpContext.Current.Session=null问题

    启用asp.net状态服务,可以让Session持久化!

  6. ubuntu apt-get常用命令的使用

             packagename指代为软件包的名称 apt-get install packagename     安装一个新软件包(参见下文的aptitude) apt-get remove ...

  7. QT窗口渐现效果,窗口震动效果,鼠标移动窗口

    //窗口渐现效果void MainWindow::closeWindowAnimation() //关闭窗口效果 { QPropertyAnimation *animation = new QProp ...

  8. The Promise of Deep Learning

    The Promise of Deep Learning By Yoshua Bengio Humans have long dreamed of creating machines that thi ...

  9. Wordpress 网站搭建及性能监控方法详解!

    前言 说到 Wordpress,大家往往想到的是博客,其实,如今的 WordPress 已经成为全球使用量最多的开源 CMS 系统.并且,如果你有一定的技术基础稍加改动,就可以搭建出新闻网站.企业网站 ...

  10. Web-Scale IT 我之见!

    Gartner 曾在发表过的一篇文章中表示,到2017年,全球50%的企业将使用Web-Scale IT 架构.下面我们来看看 Andre Leibovici 对 Web-Scale IT 的看法: ...