石景山网站建设公司,企业咨询方案,苏州工业园区疾病防治中心,社保网站人员减少怎么做一、NTP时间同步服务1、NTP介绍NTP服务器【Network Time Protocol#xff08;NTP#xff09;】是用来使计算机时间同步化的一种协议#xff0c;它可以使计机对其服务器或时钟源#xff08;如石英钟#xff0c;GPS等等)做同步化#xff0c;它可以提供高精准度的时间校正NTP】是用来使计算机时间同步化的一种协议它可以使计机对其服务器或时钟源如石英钟GPS等等)做同步化它可以提供高精准度的时间校正LAN上与标间差小于1毫秒WAN上几十毫秒且可介由加密确认的方式来防止恶毒的协议攻击。时间按NTP服器的等级传播。按照离外部UTC源的远近把所有服务器归入不同的Stratum层中。ntpdNetwork Time Protocol daemon是 Linux 操作系统的一个守护进程用于校正本地系统与钟源服务器之间的时间完整的实现了 NTP 协议。ntpd 与ntpdate 的区别是 ntpd 是步进式的逐渐校正时间不会出现时间跳变而 ntpdate是断点更新。部分操作系统采用 chrony 作为默认 NTP 服务请确认 ntpd 正在运行并设置为开机自启动。在CentOS8.0中默认不再支持ntp软件包时间同步将由chrony来实现。使用 systemctl is-active ntpd.service 命令可查看 ntpd 是否正在运行。使用 systemctl is-enabled ntpd.service 命令可查看 ntpd 是否开机自启动。NTP 服务的通信端口为 UDP 123设置 NTP 服务之前请确保您已经开放UDP 123 端口。2、主要结构 (1) 时间来源 现在的标准时间是由原子钟报时的国际标准时间UTCUniversal Time Coordinated世界协调时)所以NTP获得UTC的时间来源可以是原子钟、天文台、 卫星也可以从Internet上获取。 (2) 传播 在NTP中定义了时间按照服务器的等级传播按照离外部UTC源远近将所有的服务 器归入不同的Stratum层中例如把通过GPS取得发送标准时间的服务器叫 Stratum-1的NTP服务器而Stratum-2则从Stratum-1获取时间Stratum-3从 Stratum-2获取时间以此类推但Stratum层的总数限制在15以内。所有这些服务 器在逻辑上形成阶梯式的架构相互连接而Stratum-1的时间服务器是整个系统的基 础这种阶梯式的架构示意图如下图所示 计算机主机一般同多个时钟服务器连接利用统计学的算法过滤来自不同服务器的时 间以选择最佳的路径和来源以便校正主机时间。即使在主机长时间无法与某一时钟 服务器联系的情况下NTP服务依然可以有效运转。 3、架构和安装架构如上图所示对于一些服务依赖于时间的集群如hadoop集群需要有一部主机 作为ntp服务器其他客户端主机从这部主机进行时间同步另外ntp服务主机从更 高一层的服务器获得时间信息。 安装配置 NTP服务主机规划 centos7.x 虚拟机两台 服务端192.168.198.140客户端: 192.168.198.138服务端配置服务端和客户端都分别按照ntp服务 yum install –y ntp
查看是否安装成功 rpm -qa |grep ntp配置文件为: /etc/ntp.confserver 0.cn.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst #iburst 当一个远程NTP服务器不可用时向他发送一系列的并发包进行检测
server 2.asia.pool.ntp.org iburst
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10 #这行是时间服务器的层次。设为0则为顶级如果要向别的NTP服务器更新时间请不要把它设为0最好设置的数字靠后
interface listen 192.168.198.140配置好后需要重启服务使用如下命令检查是否同步成功如出现running表示运行否则失败。 客户端配置 vim /etc/ntp.conf这里的server指向服务器的IP改完后重启服务 上面红色的那一行不影响使用 ntp同步测试 【在进行所有ntp测试时最好关闭服务端的防火墙】[rootNAT-139 ~]# iptables -F
[rootNAT-139 ~]# systemctl stop firewalld
[rootNAT-139 ~]# setenforce 0在服务器端执行ntpstat命令看下服务端同步上游服务器情况这个命令需要等待2-3分钟当状态由unsynchronised变为synchronised代表同步上游服务器成功此过程需要 几分钟时间 。然后执行ntpq -pn命令查看服务器同步详细情况 以星号 (*)开头这就意味着您的计算机已经从网络上获取了时间当前的refid是local代表我们配置的本地ntp服务器ntp链接状态ntpq -premote本机和上层ntp的ip或主机名“”表示优先“*”表示次优先refid参考上一层ntp主机地址ststratum阶层when多少秒前曾经同步过时间poll下次更新在多少秒后reach已经向上层ntp服务器要求更新的次数delay网络延迟offset时间补偿jitter系统时间与bios时间差#参数详解 remote – 用于同步的远程节点或服务器。“LOCAL”表示本机 当没有远程服务器可用
时会出现
表中第一个字符统计代码是状态标识参见 Peer Status Word包含 
x-#*o
•   – 无状态表示: 没有远程通信的主机
• LOCAL 即本机 未被使用的高层级服务器 远程主机使用的这台机
器作为同步服务器
• “x” – 已不再使用
• “-” – 已不再使用
• “#” – 良好的远程节点或服务器但是未被使用 不在按同步距离排序的前六个节点
中作为备用节点使用
• “” – 良好的且优先使用的远程节点或服务器包含在组合算法中
• “*” – 当前作为优先主同步对象的远程节点或服务器
“o” – PPS 节点 (当优先节点是有效时)。实际的系统同步是源于秒脉冲信号
pulse-per-secondPPS可能通过PPS 时钟驱动或者通过内核接口。refid – 远程的服务器进行同步的更高一级服务器
st – 远程节点或服务器的 Stratum级别NTP 时间同步是分层的
t – 类型 (u: unicast单播 或 manycast选播 客户端, b: broadcast
广播 或 multicast多播 客户端, l: 本地时钟, s: 对称节点用于备份,
A: 选播服务器, B: 广播服务器, M: 多播服务器, 参见“Automatic Server
Discovery“)
when – 最后一次同步到现在的时间 (默认单位为秒, “h”表示小时“d”表示天)
poll – 同步的频率rfc5905建议在 NTPv4 中这个值的范围在 4 (16秒) 至 17
(36小时) 之间即2的指数次秒然而观察发现这个值的实际大小在一个小的多的范围内
64 (26 )秒 至 1024 (210 )秒
reach – 一个8位的左移移位寄存器值用来测试能否和服务器连接每成功连接一次
它的值就会增加以 8 进制显示
delay – 从本地到远程节点或服务器通信的往返时间毫秒
offset – 主机与远程节点或服务器时间源的时间偏移量offset 越接近于0主机和
NTP 服务器的时间越接近(以方均根表示单位为毫秒)
jitter – 与远程节点同步的时间源的平均偏差多个时间样本中的 offset 的偏差
单位是毫秒这个数值的绝对值越小主机的时间就越精确
客户端测试 使用ntpdate 服务器ip进行同步发现报ntp socket被占用是因为客户端开启了ntp服务需要停掉ntp服务然后同步到这里同步完成我们可在服务端和客户端同时执行date命令查看时间是否同步 4、ntpd、ntpdate的区别 下面是网上关于ntpd与ntpdate区别的相关资料。如下所示 使用之前得弄清楚一个问题ntpd与ntpdate在更新时间时有什么区别。 ntpd不仅仅是时间同步服务器它还可以做客户端与标准时间服务器进行同步时 间而且是平滑同步 并非ntpdate立即同步在生产环境中慎用ntpdate也正如此两者不可同时运行。 时钟的跃变对于某些程序会导致很严重的问题。 许多应用程序依赖连续的时钟——毕竟这是一项常见的假定即取得的时间是线 性的 一些操作例如数据库事务通常会地依赖这样的事实时间不会往回跳跃。 不幸的是ntpdate调整时间的方式就是我们所说的”跃变“在获得一个时间之后 ntpdate使用settimeofday(2)设置系统时间。这有几个非常明显的问题 1这样做不安全 ntpdate的设置依赖于ntp服务器的安全性攻击者可以利用一些软件设计上的缺 陷拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。 由于ntpdate采用的方式是跳变跟随它的服务器无法知道是否发生了异常时间不 一样的时候唯一的办法是以服务器为准。 2这样做不精确 一旦ntp服务器宕机跟随它的服务器也就会无法同步时间。 与此不同ntpd不仅能够校准计算机的时间而且能够校准计算机的时钟。 3这样做不够优雅 由于是跳变而不是使时间变快或变慢依赖时序的程序会出错 例如如果ntpdate发现你的时间快了则可能会经历两个相同的时刻对某些应 用而言这是致命的。尤其对数据库等对时间敏感的程序应用。 因而唯一一个可以令时间发生跳变的点是计算机刚刚启动但还没有启动很多服 务的那个时候。 其余的时候理想的做法是使用ntpd来校准时钟而不是调整计算机时钟上的时 间。 NTPD在和时间服务器的同步过程中会把BIOS计时器的振荡频率偏差——或者说 Local Clock的自然漂移(drift)——记录下来。 这样即使网络有问题本机仍然能维持一个相当精确的走时。 二、NFS网络文件共享存储服务器 NFS介绍 NFS是Network File System的缩写中文意思是网络文件系统。它的主要功能是通过网络一般是局域网让不同的主机系统之间可以共享文件或目录。NFS客户端一般为应用服务器例如Web可以通过挂载的方式将NFS服务器端共享的数据目录挂载带NFS客户端本地系统中就是某一个挂载点下。从客户端本地看NFS服务器端共享的目录就好像是客户端自己的磁盘分区或目录一样而实际上确实远端的NFS服务器的目录。NFS网络文件系统很像Windows系统的网络共享、安全功能、网络驱动器映射这也和Linux系统里的samba服务类似。只不过一般情况下Windows网络共享服务或samba服务用于办公局域网共享而互联网中小型网站集群架构后端常用NFS进行数据共享如果是大型网站那么有可能还会用到更复杂的分布式文件系统例如:Moosefs(mfs)、GlusterFS、FastDFS.为什么要使用共享存储实现多台服务器之间数据共享实现多台服务器之间数据一致集群没有共享存储的情况A用户上传图片经过负载均衡负载均衡将上传请求调度至WEB1服务器上。B用户访问A用户上传的图片此时B用户被负载均衡调度至WEB2上因为WEB2 上没有这张图片所以B用户无法看到A用户传的图片。集群有共享存储的情况 A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储*B用户访问A用户上传图片时无论调度至WEB1还是WEB2最终都会上共享存储访问对应的文件这样就可以访问到资源了。也就是用户上传文件时都上传到共享存储不同服务器通过连接共享存储进行查看NFS工作原理 在NFS服务器端设置好一个共享目录/video后其他有权限访问NFS服务器端的客户 端都可以将这个共享目录/video挂载到客户端本地的某个挂载点图中的两个NFS客 户端本地的挂载点分别为/v/video和/video,不同客户端的挂载点可以不相同。 客户端正确挂载完毕后,就进入到了nfs客户端的挂载点所在的/v/video或/video目 录此时就可以看到NFS服务器端/video共享出来的目录下的所有数据。在客户端上 查看时NFS服务器端的/video目录就相当于客户端本地的磁盘分区或目录几乎感 觉不到使用上的区别。 已经挂载完后用df -h可以看到本地挂载信息和本地的磁盘分区几乎没什么差别 只是文件系统的开始是以IP地址开头而已。 NFS服务所使用的端口号在每次启动的时候是不同的通过RPC远程过程调用Remote Procedure Call简称RPC协议/服务来实现这个RPC服务的应用在门户级的网站有很多。例如百度。什么是RPC因为NFS支持的功能相当多而不同的功能都会使用不同的程序来启动每启动一个功能就会启用一些端口来传输数据因此NFS的功能所对应的端口无法固定它会随机取用一些未被使用的端口来作为传输之用其中CentOS5.x的随机端口都小于1024,而CentOS6.x的随机端口都是较大的。因为端口不固定这样一来就会造成NFS客户端与NFS服务端的通信障碍,因为NFS客户端必须要知道NFS服务器端的数据传输端口才能进行通信才能交互数据。要解决上面的困扰就需要通过远程过程调用RPC服务来帮忙了NFS的RPC服务最主要的功能就是记录每个NFS功能所对应的端口号并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端从而确保客户端可以连接到正确的NFS端口上去达到实现数据传输交互数据目的。服务端的RPC服务如何知道每个NFS的端口的当NFS读取端启动服务时会随机取用若干端口并主动向RPC服务注册相关端口的对应的功能然后RPC服务使用固定的111端口来监听NFS客户端提交的请求并将正确的NFS端口信息回复给请求的NFS客户端。NFS实例搭建 我们需要两台CentOS7机器我们用虚拟机做测试分别做NFS服务器和客户端配置如下NFS-Server ip192.168.198.140NFS-Client ip192.168.198.138实现的目标是在NFS服务器上共享一个目录在客户端上可以直接操作NFS服务器上的这个共享目录下的文件。 NFS服务端配置 ①安装NFS服务和rpcbind 首先使用yum安装nfs服务yum -y install rpcbind nfs-utils②创建共享目录 在服务器上创建共享目录并设置权限。mkdir -p /data/share/
chmod 755 -R /data/share/③配置NFSnfs的配置文件是 /etc/exports 在配置文件中加入一行/data/share/ 192.168.198.140(rw,no_root_squash,no_all_squash,sync)这行的意思是把共享目录/data/share/共享给192.168.198.138这个客户端ip后面括号里的内容是权限参数其中rw 表示设置目录可读写。 sync表示数据会同步写入到内存和硬盘中相反 rsync 表示数据会先暂存于内存中而非直接写入到硬盘中。no_root_squash NFS客户端连接服务端时如果使用的是root的话那么对服务端分享的目录来说也拥有root权限。no_all_squash 不论NFS客户端连接服务端时使用什么用户对服务端分享的目录来说都不会拥有匿名用户权限。如果有多个共享目录配置则使用多行一行一个配置。④启动服务按顺序启动rpcbind和nfs服务 systemctl start rpcbind
systemctl start nfs加入开机启动【centos7】systemctl enable rpcbind
systemctl enable nfs⑤验证服务 nfs服务启动后可以使用命令 rpcinfo -p 查看端口是否生效。111端口为rpcbind服务对外提供服务的主端口。#设置服务开机自启动【centos6】chkconfig rpcbind on
chkconfig nfs on#查看
systemctl list-unit-files |grep rpcbind
systemctl list-unit-files | grep nfs我们可以使用 showmount 命令来查看服务端(本机)是否可连接 出现上面结果表明NFS服务端配置正常。 NFS客户端配置①安装rpcbind服务 Centos6.6版本及以上的系统需要安装nfs-utils软件否则再挂载的时候会报错,Centos6.5以前的没有这个问题。yum -y install nfs-utils rpcbind#客户端只需要启动rpcbind服务即可
service rpcbind start②挂载远程nfs文件系统 查看服务端已共享的目录 showmount -e 192.168.198.140建立挂载目录执行挂载命令mkdir /mnt/sharemount -t nfs 192.168.198.140:/data/share /mnt/share -o nolock,nfsvers3,vers3如果不加 -o nolock,nfsvers3 则在挂载目录下的文件属主和组都是nobody如果指定nfsvers3则显示root。查看挂载结果在客户端输入 df -h如果要解除挂载可执行命令umount /mnt/share开机自动挂载 如果按上面的配置好NFS即部署好了但是如果你重启客户端系统发现不能随机器一起挂载需要再次手动操作挂载这样操作比较麻烦因此我们需要设置开机自动挂载。我们不要把挂载项写到/etc/fstab文件中因为开机时先挂载本机磁盘再启动网络而NFS是需要网络启动后才能挂载的所以我们把挂载命令写入到/etc/rc.d/rc.local文件中即可。[rootlocalhost ~]# vim /etc/rc.d/rc.local
#在文件最后添加一行
mount -t nfs 192.168.42.101:/data/share /mnt/share/ -o nolock,nfsvers3,vers3
#同时需要给此脚本加执行权限
chmod x /etc/rc.d/rc.local
保存并重启机器看看。测试验证 查看挂载结果在客户端输入 df -h 看到最后一行了没说明已经挂载成功了。接下来就可以在客户端上进入目录/mnt/share下新建/删除文件然后在服务端的目录/data/share查看是不是有效果了同样反过来在服务端操作在客户端对应的目录下看效果。测试结果在138客户端的/mnt/share目录中创建一个1.txt文件可以在服务端/data/share目录下看到此文件。你也可以这样理解将服务端的/data/share目录挂载到了客户端/mnt/share上相当于将服务端的/data/share目录共享给了客户端的/mnt/share所以在客户端/mnt/share进行创建文件或删除文件的操作相当于直接对服务端/data/share目录下进行操作在服务端/data/share进行创建文件或删除文件的操作相当于直接对客户端/mnt/share目录下进行操作。在客户端进行操作在服务端进行操作三、NFS的优缺点 NFS服务可以让不同的客户端挂载使用同一个共享目录也就是讲其作为共享存储使用这样可以保证不同节点客户端数据的一致性在集群架构环境中经常会使用到仅支持类UNIX系统。如果是Windows和Linux混合环境的集群系统可以使用samba来实现。优点 简单容易上手容易掌握。 NFS文件系统内数据是在文件系统之上的即数据是能看得见的。 部署快速维护简单方便且可控满足需求就是最好的。 可靠从软件层面上看数据可靠性高经久耐用。 服务非常稳定。 缺点 存在单点故障如NFS Server宕机了所有客户端都不能访问共享目录后期会 通过负载均衡及高可用方案弥补 在大数据高并发的场合NFS效率、性能有限2千万/日 以下PV的网站不是瓶 颈除非网站架构设计太差 客户端认证是基于IP和主机名的权限需要根据ID识别安全性一般用于内网 则问题不大 NFS数据是明文的NFS本身不对数据完整性作验证传输的文件可能完整也可能不完整。 多台客户机器挂载一个NFS服务器时连接管理维护麻烦耦合度高。尤其 NFS服务端出问题后所有NFS客户端都处于挂掉状态测试环境可使用autofs自动 挂载解决正式环境可修复NFS服务或强制卸载umount -lf耦合性英语Couplingdependency或称耦合力或耦合度是一种软件度量是指一程序中模块及模块之间信息或参数依赖的程度。 内聚性是一个和耦合性相对的概念一般而言低耦合性代表高内聚性反之亦然。 涉及了同步实时等待和异步解耦的概念NFS服务端和客户端相对来说就是耦合度有些高。网站程序也是一样尽量不要耦合度太高系统及程序架构师的重要职责就是为了解决程序及架构解耦让网站的可扩展性变得更好。