2014年11月19日星期三

多级菜单系统安装维护shell脚本实现企业级案例

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
多级菜单系统安装维护shell脚本实现企业级案例  阅读原文»

多级菜单系统安装维护shell脚本实现企业级案例

演示效果:

1、一级菜单

wKioL1RpyY_RDwaJAAKEInQnrpw366.jpg

2、二级菜单

wKiom1RpyRuxWSfXAAD0ePsm7Ag793.jpg

3、执行操作

wKioL1RpyZDiia2CAAEw_Y3jWLY244.jpg

脚本参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
VMware ESXi5.5主机无法挂载RHEL6.5 NFS存储  阅读原文»

VMware ESXi5.5主机无法挂载RHEL6.5 NFS存储

系统环境

系统平台:RHEL LINUX 6.5

NFS Server IP:192.168.2.19

共享目录:/mnt/parastor

VMWARE EXSI:5.5

问题描述:在VMWARE EXSI5.5上的DATASTORE里挂载一台RHEL Linux5.5虚拟机NFS服务器里的共享目录,提示如下:

错误堆栈

在 vCenter Server"VM-1"上调用对象 "datastoreSystem-29"的"HostDatastoreSystem.CreateNasDatastore" 失败。

NFS 挂载 192.168.2.19:/mnt/parastor 失败: NFS 服务器通过 TCP 不支持 MOUNT 版本 3。

(对应英文版提示为NFS server does not support MOUNT version 3 over TCP)

wKiom1Rpt3bjK3KSAADdUErxZfw765.jpg

这是由于NFS服务器上的服务用的是默认的UDP协议方式传输,而VMware要求必须用TCP,因此修改配置文件/etc/nfsmount.conf,取消Defaultproto=tcp行注释即可。当然有的时候,如果你修改了这项还不能成功挂载的话,请检查如下:

一、防火墙是否关闭

service iptables stop

chkconfig iptables off

二、nfs服务是否启动

chkconfig nfs on

service nfs start

三、检查exports文件

cat /etc/exports

/mnt/parastor 192.168.110.*(rw,sync,no_root_squash)

四、修改/etc/nfsmount.conf

将如下几行的注释去掉(默认是udp,esxi需要使用tcp,esxi需要使用mount v3)

Defaultproto=tcp

Proto=tcp

mountproto=tcp

mounvers=3

五、然后重启如下服务:

service rpcbind start

service nfs restart

最后发现挂载nfs存储成功。


注意:RPC必须先启动。RPC即Remote Procedure Call Protocol(远程过程调用协议),RPCBIND用于取代旧版本中的portmap组件。 简单说,RPCBIND就是为了将不同服务与对应的端口进行绑定,以便支持机器间的互操作。原理补充:RPC 最主要的功能就是指定每个 NFS 功能所对应的 port number ,K且回报用舳耍�糜舳丝梢赃B到正的端口上去。 当服务器在启动 NFS r会随机取用数个端口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能,然后 RPC 通过固定使用 port 111 砑嗵�没Ф说那肭蟛⒒乇ㄓ没Ф苏�返亩丝冢�慈繁FS连接的成功!

另外关于FSID参数的解释:
要通过NFS共享一个目录,首先需要在/etc/exports文件中定义这个目录,并且使用fsid=0的参数。(使用fsid=0选项的时候只能共享一个目录,这个目录将成为NFS服务器的根目录。)

参看如下英文原版解释:

fsid=num
Thisoptionforcesthefilesystemidentificationportionofthefilehandleandfileattributesusedonthe
wiretobenuminsteadofanumberderivedfromthemajorandminornumberoftheblockdeviceonwhichthe
filesystemismounted.Any32bitnumbercanbeused,butitmustbeuniqueamongstalltheexported
filesystems.

ThiscanbeusefulforNFSfailover,toensurethatbothserversofthefailoverpairusethesameNFSfile
handlesforthesharedfilesystemthusavoidingstalefilehandlesafterfailover.

SomeLinuxfilesystemsarenotmountedonablockdevice;exportingtheseviaNFSrequirestheuseofthe
fsidoption(althoughthatmaystillnotbeenough).

Thevalue0hasaspecialmeaningwhenusewithNFSv4.NFSv4hasaconceptofarootoftheoverall
exportedfilesystem.Theexportpointexportedwithfsid=0willbeusedasthisroot.

NFS需要标志每一个导出的文件系统。通常使用文件系统的UUID(如果该文件系统有的话),或者使用存储该文件系统的设备的设备号(如果该文件系统存储在设备上)。并不是所有的文件系统都存储在设备上,也并不是所有的文件系统都有UUID,NFS需要精确标识文件系统,就需要使用fsid选项。

对于NFSv4,有一个杰出的文件系统,它是所有导出的文件系统的根目录。通过fsid=root或fsid=0来标识。标识其他文件系统,可以使用一个小的整数(任何32位数字都可以使用,但它在所有导出的文件系统中必须是唯一的),或者任意一个包含32个十六进制数字和标点符号的UUID。

Linux内核2.6.20版本及更早版本不支持UUID的设置。

背景知识:

  NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。

  NFS 的基本原则是"容许不同的客户端及服务端通过一组RPC分享相同的文件系统",它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

本文出自 "滴水穿石孙杰" 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/1577582

返回顶部

阅读更多内容

没有评论:

发表评论