知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

中型企业机房停电时的开关机作业

发布时间:2014-09-05 15:18:42作者:知识屋

中型企业机房停电时的开关机作业
 
什么是中型机房: 服务器数量100台以上1000台以下的企业自己建制的机房.
为什么要谈停电?
中型企业自建机房不可能像IDC那样,有那么高的冗余性,从而难免会遇到停电的时间,本人在
深圳软件园和成都天府软件园一年最少2次都遇到停电事件, 那停电了IT要做那些事情呢?    www.zhishiwu.com  
有人会说我有UPS,发电机, 首先UPS 一般企业并不会买那么大的容量给你用个一天,其次就算机
房有电?那机房空调 UPS 撑的住嘛? 发电机咱们不多谈,有钱建,有钱烧油那就另说了.
 
好了,解释完为啥停电,咱们就来谈苦B的IT 关机和开机 作业, (这还有啥好谈的?直接关就好了呗?
且听我细细道来)
拿100台的服务器来说,一般企业应该都会有windowslinux机器,怎么样快速的关闭这些server
(你的UPS能撑多久?你的空调停了机房温度多长时间能维持在30度以下?)
所以下文我们就来解决这个问题,
1、关机流程
    所谓关机流程就是指规范你的机房内的设备应该先关什么后关什么.如果你的少量的服务器需
要补间断作业需求,那还要分阶段关机
    一般来说:  www.zhishiwu.com  
   a、不常用OARD server,有clust的server, 举例来说 DHCP、Dns、Print、Antivirus、IAS等
等和HA的其中一台,比如AD DC,
   b、除AD DC、NIS、以外的所有服务器,。。。。。。。
   c、AD DC、NIS、及需要手动关闭的server
   d、VM esxi,  
   f、Sotrage(DAS、NAS)、Type Library、PBX、Network device、KVM
   g、UPS 
2、关机脚本与检查
   a、Windows server
       windows server 比较容易 使用shutdown 就好,
       shutdown -m /x.x.x.x -f -t 00 重复这些命令就好。
       这条命令执行时需要你对所有涉及到的机器有admin 权限,最好是用domain admin 登陆到
AD上 去执行该脚本,
       而对于一些没有join domain 的机器可以使用先使用net use /x.x.x.xipc$ password /user:username
先获取权限后在执行shutdown 命令。       
 b、Linux  www.zhishiwu.com  
      方法1:对于使用ssh key 登录方式 相对简单
      ssh key 免密码部分
目的让nis1 登录 nis2
产生key文件
[root@nis1 .ssh]# ssh-keygen -t rsa  ------------->生成key 文件id_rsa.pub
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b8:d9:97:26:74:a3:0f:65:0a:99:3f:91:af:ec:17:e3 root@nis1
[root@nis1 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
[root@nis1 .ssh]# more id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvoab6CicZkl93QfDcQm4Kkmap4jVgbUXOQ+GuZLNDUo
96gBltP1J3djMkrI0gfflM7T4mDFnymP3F
MOXxnasMHL0jkwwv0GlMGVOlDq5cFSxpY4nxJiLiDFxs8fqVLKedvvPym1frZxnNIDMhwUG8r1
a3d+t/XSAjjTdRLQAFOVqDgBmDObiMltiKoKhSF
/MVEAsR9Yx7KpIWzqJvJc6OnRMWWYxRhhiBabViJBeKCqRy//bQ6JGAYCqPTbfd4DIE7D8h+
9WFt3yu1PaKb142ekmr1wew0KpeSpHurYaP57dAXl
y0xCqcTKp5AUJJ3XqatpS3dLeO8LBu6tWhjJFow== root@nis1
 
将id_rsa.pub 内容 追加到nis2 的/root/.ssh/authorized_keys中
[root@nis1 ~]# scp id_rsa.pub root@nis2:/root/.ssh/
root@nis2:~/.ssh# cat id_rsa.pub >> authorized_keys 
root@nis2:~/.ssh# more authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCOPnxdx4VDXGg+iACbjK7Vf9EgEs4eue2TCJxFrb8
DDZpB1xdgtuYx+X9b6wvAOgQ00MRUEgcXem3fDmxLgux
FiYlUT33zkmg+lnC5MwZHIwFYTAMuVRN6/rzVApTqN18bG9/jQgDtYPUwKnS3l1EQps64i+4E
7bwdoyKmzOzzyQ==
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvoab6CicZkl93QfDcQm4Kkmap4jVgbUXOQ+GuZLNDUo
96gBltP1J3djMkrI0gfflM7T4mDFnymP3FMOXxnasMHL
0jkwwv0GlMGVOlDq5cFSxpY4nxJiLiDFxs8fqVLKedvvPym1frZxnNIDMhwUG8r1a3d+t/XSAjjTd
RLQAFOVqDgBmDObiMltiKoKhSF/MVEAsR9Yx7KpIWzqJvJ
c6OnRMWWYxRhhiBabViJBeKCqRy//bQ6JGAYCqPTbfd4DIE7D8h+9WFt3yu1PaKb142ekmr1
wew0KpeSpHurYaP57dAXly0xCqcTKp5AUJJ3XqatpS3dLeO8LBu
6tWhjJFow== root@nis1
root@nis2:~/.ssh# 
这样就可以使用nis1 免密码登录nis2 了  www.zhishiwu.com  
 
      找一台机器最好是NIS,可以免密码登陆所有的linux 机器,
 ×××××××××××××××××××××××××××××××
NIS1 #more shutdown.sh 
#! /bin/sh
 
 
for i in `awk '{print $1}' iplist`
do
 
 
echo $i
ssh $i "shutdown -h now" 
done
×××××××××××××××××××××××××××××××
[NIS1]# more iplist
×××××××××××××××××××××××××××××××
1.1.1.1
1.1.1.2
×××××××××××××××××××××××××××××××
  
    方法2:对于使用用户名密码的登录方式
需要用到的几个文件
[NIS1]# ls
log.sh  ping.sh  shutdown.sh  iplist
[NIS1]# more shutdown.sh 
×××××××××××××××××××××××××××××××
#!/bin/bash
 
 
for i in `cat iplist`
do
 
 
  N1=`echo $i|awk -F: '{print$1}'`
  N2=`echo $i|awk -F: '{print$2}'`
  N3=`echo $i|awk -F: '{print$3}'`
  echo $1
  echo $2
  echo $3
 
 
  expect log.sh $N1 $N2 $N3
done
×××××××××××××××××××××××××××××××
 
[NIS1]# more log.sh 
×××××××××××××××××××××××××××××××
#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set passwd [lindex $argv 2]
 
 
set timeout 5
spawn ssh $user@$ip
expect {
 sleep 2
    "*(yes/no)?" {send  "yesr";exp_continue}
 sleep 2
    "password:"  {send "$passwdr"}
}
 
 
expect { 
 sleep 2
     "#" {send "shutdown -h nowr"}
}
expect {
 sleep 2
     "#" {send "exitr"}
}
exit
expect eof
exit
×××××××××××××××××××××××××××××××
 
[NIS1]# more iplist 
×××××××××××××××××××××××××××××××
1.1.1.1:root:password:
1.1.1.2:root:password:
×××××××××××××××××××××××××××××××
 
测试:ping 看是否关机
[NIS1]# more ping.sh 
×××××××××××××××××××××××××××××××
#!/bin/bash
for i in `cat iplist`
 
do
#  echo $i
  N1=`echo $i|awk -F: '{print$1}'`
  echo $1
 
 
  pin_test=`ping -c 4 $N1 | grep ttl|wc -l`
  if [ $pin_test -gt 2 ]  
  then
  echo $N1 "is up"
  else
  echo $N1 "is down"
  fi
done
×××××××××××××××××××××××××××××××
以上就是2中linux 关机的脚本,可以看看适合用哪一种,个人建议是用第一种,应为企业越大,
就越要规范,越是要讲究速度。
   
3、开机流程
基本上就是 关机过程反过来
a、UPS 
b、Network device、KVM
c、Sotrage(DAS、NAS)、Type Library、PBX
d、AD DC、NIS、
e、windows terminal license server 或其他 license server
f、剩余所有server
 
4、开机检查
这个就要很仔细了,基本上是开机流程做一步就检查一步,确保每问题了在进行下一步动作。
最后就要检查各项服务:比如client 能否获取IP,上网、打印,收发mail,等等 IT所提供的一切服务。
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜