今天,客户把t4-4的一台机器重启后,发现使用ssh无法登录,telnet也无法登录,感觉特别奇怪。叫我们远程支持一下,现把整个过程分析出来,与大家分享!
1、首先说明,客户的环境是一台t4-4的小机,使用建了两个ldom分区,安装的solaris11,所以我们可以通过管理分区进去
# ldm list
NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME
primary active -n-cv- UART 8 8G 2.2% 2.2% 56d 17h 43m
MYTEST2 active -n---- 5000 16 16G 0.1% 0.1% 16h 31m
MYTEST1 active -n---- 5001 24 40G 3.6% 3.6% 15h 11m
MYTEST3 active -n--v- 5002 72 160G 0.5% 0.5% 33d 18h 30m
根据客户的描述,我们知道是MYTEST1的远程连接无法使用了,所以通过主分区进去
# telnet localhost 5001
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connecting to console "MYTEST1" in group "MYTEST1" ....
Press ~? for control options ..
MYTEST1 console login: root
Password:
Jan 22 09:06:46 MYTEST1 login: ROOT LOGIN /dev/console
Last login: Wed Jan 22 08:15:30 on rad/0
Oracle Corporation SunOS 5.11 11.1 September 2013
You have new mail.
:~#
2、登录进去后,对系统进行检查
:~# svcs -a | grep ssh
offline 17:55:09 svc:/network/ssh:default
ssh服务是offline
再检查ssh所依赖的服务,如下:
:~# svcs -d ssh
STATE STIME FMRI
disabled 17:54:46 svc:/network/ipfilter:default
online 17:54:53 svc:/system/cryptosvc:default
online 17:54:53 svc:/network/loopback:default
online 17:54:58 svc:/system/utmp:default
online 17:55:02 svc:/network/physical:default
online 17:55:04 svc:/system/filesystem/local:default
offline 17:55:09 svc:/system/filesystem/autofs:default
可以看到,autofs这个服务是offline的,原因找到了
:~# svcadm enable autofs
:~# svcs -d ssh
STATE STIME FMRI
disabled 17:54:46 svc:/network/ipfilter:default
online 17:54:53 svc:/system/cryptosvc:default
online 17:54:53 svc:/network/loopback:default
online 17:54:58 svc:/system/utmp:default
online 17:55:02 svc:/network/physical:default
online 17:55:04 svc:/system/filesystem/local:default
offline 17:55:09 svc:/system/filesystem/autofs:default
仍然无法启动autofs
3、分析及解决
autofs一般是自动启动的,服务本身估计没有问题,可能是由于某些挂载点丢失什么的影响。
我们检查了一下/etc/auto_master等自动配置的文件,均没有问题,由于客户没有提供更多情况,我们建议重启一下操作系统,观察启动情况。
:~# sync
:~# reboot
在关闭后,重启的过程中,我们发现了这样的情况
rpool/export/home/user1 mount /export/home/user1失败
rpool/export/home/user2 mount /export/home/user2失败
所以,从这里基本可以看到问题。客户这下回忆说,曾经在不久前删除了两个用户,并且把目录也强制删除了,情况一下明了!
:~# cat /etc/passwd
root:x:0:0:Super-User:/root:/usr/bin/bash
daemon:x:1:1::/:
bin:x:2:2::/usr/bin:
sys:x:3:3::/:
adm:x:4:4:Admin:/var/adm:
lp:x:71:8:Line Printer Admin:/:
uucp:x:5:5:uucp Admin:/usr/lib/uucp:
nuucp:x:9:9:uucp Admin:/var/spool/uucppublic:/usr/lib/uucp/uucico
dladm:x:15:65:Datalink Admin:/:
netadm:x:16:65:Network Admin:/:
netcfg:x:17:65:Network Configuration Admin:/:
smmsp:x:25:25:SendMail Message Submission Program:/:
gdm:x:50:50:GDM Reserved UID:/var/lib/gdm:
zfssnap:x:51:12:ZFS Automatic Snapshots Reserved UID:/:/usr/bin/pfsh
upnp:x:52:52:UPnP Server Reserved UID:/var/coherence:/bin/ksh
xvm:x:60:60:xVM User:/:
mysql:x:70:70:MySQL Reserved UID:/:
openldap:x:75:75:OpenLDAP User:/:
webservd:x:80:80:WebServer Reserved UID:/:
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
svctag:x:95:12:Service Tag UID:/:
unknown:x:96:96:Unknown Remote UID:/:
nobody:x:60001:60001:NFS Anonymous Access User:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
aiuser:x:61:61:AI User:/:
ftp:x:21:21:FTPD Reserved UID:/:
dhcpserv:x:18:65:DHCP Configuration Admin:/:
pkg5srv:x:97:97:pkg(5) server UID:/:
可看到没有user1,和user2
:~# df -h
Filesystem Size Used Available Capacity Mounted on
rpool/ROOT/solaris-1 244G 5.7G 200G 3% /
/devices 0K 0K 0K 0% /devices
/dev 0K 0K 0K 0% /dev
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 34G 2.6M 34G 1% /system/volatile
objfs 0K 0K 0K 0% /system/object
sharefs 0K 0K 0K 0% /etc/dfs/sharetab
fd 0K 0K 0K 0% /dev/fd
rpool/ROOT/solaris-1/var
244G 241M 200G 1% /var
swap 35G 807M 34G 3% /tmp
rpool/VARSHARE 244G 96K 200G 1% rpool/export 244G 1.0G 200G 1% /export
rpool/export/home 244G 71M 200G 1% /export/home
rpool/export/home/admin
244G 34K 200G 1% /export/home/admin
也没有这样的挂载点存在,可以肯定的是,由于无法挂载,导致autofs无法正常启动,进而使用ssh无。法启动所以基本上可以确定删除这两个挂载点可解决问题
删除挂载点:
:~# zfs destroy rpool/export/home/user2
:~# zfs destroy rpool/export/home/user1
删除后,再重启一次,已经没有挂载的错误出现
4、重启后检查服务
:~# svcs -d ssh
STATE STIME FMRI
disabled 17:54:46 svc:/network/ipfilter:default
online 17:54:53 svc:/system/cryptosvc:default
online 17:54:53 svc:/network/loopback:default
online 17:54:58 svc:/system/utmp:default
online 17:55:02 svc:/network/physical:default
online 17:55:04 svc:/system/filesystem/local:default
online 17:55:09 svc:/system/filesystem/autofs:default
可以看到,autofs已经起来了,检查一下ssh
:~# svcs -a | grep ssh
online 17:55:09 svc:/network/ssh:default
也起来了,问题解决!
最后说明,solaris的服务启动与其它服务是依赖的,如果所依赖的服务没有启动,那么它本身无法启动的