CentOS 上使用 NFS 的教程以及介绍

NFS 可以把NFS server 上的文件及文件共享给NFS client 服务器

两个概念,NFS Server(Master) 和 NFS Client

NFS Server 可以把本服务器上的文件和文件夹共享给NFS Client, NFS Client 可以在共享的文件和文件夹上进行读写操作,并且实时返回给NFS Master

NFS Server 一般作为存储服务器,常见为使用RAID 5 和 RAID 10 的存储服务器,容量比较大. 对于一些图片站和网盘站点,网站所在的服务器一般为NFS Client,NFS Client 把图片和文件直接存储在NFS Server上

为了方便对NFS进行user id 和 group id 进行统一管理,我们一般需要NFS Server 和 NFS Client 使用同一种操作系统, 比如说centos 和 centos. 当然了,分别使用不同的操作系统,比如说centos 和 debian 也是可以的,就是有点麻烦而已.

下面进行详细的安装步骤:

无论是CentOS 6 和 CentOS 7, 安装步骤基本都一致,这里推荐CentOS 7. RHEL系的操作系统越新越好用

服务器配置:

NFS Server Hostname: server.unixmen.local
NFS Server IP Address: 192.168.1.101/24

 

NFS Client Hostname: client.unixmen.local
NFS Client IP Address: 192.168.1.102/24

NFS服务器端配置:

CentOS 6:

yum install nfs-utils nfs-utils-lib

chkconfig nfs on 
service rpcbind start
service nfs start

CentOS 7:

yum install nfs-utils nfs-utils-lib

systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap

systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

因为CentOS 7 在系统上改了好多,所以安装稍微有点不同,其实都是同一个库

下面配置共享目录,假设我们需要共享/home 目录给client

vi /etc/exports

然后添加下面:

/home  192.168.0.102 (rw,sync,no_root_squash,no_subtree_check)

参数的解释:

rw: 这个选项允许client server 在共享目录上进行读和写的操作

ro: 只读

sync: 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;

no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有 root 的权限!

root_squash: 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个系统账号的身份

all_squash: 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组 (nfsnobody)

no_all_squash: 与all_squash 相反, 默认配置

anonuid=xxx: 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx);
anongid=xxx: 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名用户组账户为本地用户组账户(GID=xxx);

这里需要注意的, NFS 进行映射的时候,用的是uid 和 gid, 而非是用户名和group 的名字. 所以通常的做法是, 在NFS server 和 NFS client 上使用相同的用户名和用户组,以及相同UID和 GID

相同的用户名和用户组这个好解决, UID 和 GID不同的话,需要update uid 和 gid以使他们相同. 在centos 上我们经常使用军哥的lnmp,用户名和用户组都为www,加入uid 为501, gid 为501, 则我们可以用

(rw, sync, no_subtree_check, all_squash, anonuid=501, anongid=501)

async: 将数据先保存在内存缓冲区中,必要时才写入磁盘;

subtree: 若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置);
no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

配置完成以后,我们需要export这个配置来时他生效:

exportfs -a

下面我们需要配置NFS Client

安装NFS:

yum install nfs-utils nfs-utils-lib

mount 共享目录给 /home

mount -t nfs 192.168.1.101:/home /home

然后我们就可以通过df -h 看到mount 的目录或者mount 来查看

如果需要开机启动时自动mount,我们需要编辑/etc/fstab

192.168.1.101:/home /home nfs rw,sync,hard,intr 0 0

移除NFS mount

umount /home

Xenserver 快速安装debian

回首看看过去一年写过的博文,我真为我自己的语言水平感到汗颜。。我自己都读的不通顺。。。

回归正题,之所以有在Xenserver上安装debian的需求,完全是因为我有几台online.net的服务器,说起online.net, 真是对他又爱又恨。。。爱他是因为他的网络真心的稳定,价格便宜实惠而且网络又好。。。恨他是因为他家独有的float IP。。。让玩Xen 虚拟化的人吃劲了麻烦。。。尤其是在服务器的主IP 和 failover IP 不在一个/16的IP 段的时候,你就基本上不能使用net install 来安装centos 和 debian 了

但是没有想到今天无意间看到一篇关于在xenserver 上创建 SR 的文章, 通过本地的local SR,可以直接添加centos 和 debian 的minimum instal ISO file

过程如下:

步骤一: 直接ssh 登录你的xenserver 服务器,创建如下目录

mkdir -p /var/opt/xen/iso_import

步骤二: 创建 local SR ( storage repository)

xe sr-create name-label=LocalISO type=iso device-config:location=/var/opt/xen/iso_import device-config:legacy_mode=true content-type=iso

这个时候你就可以在xencenter 上看到这个local SR 了

步骤三: 将你的想用的iso 直接wget 到/var/opt/xen/iso_import 这个目录下面, 比如说centos mini iso, debian netinst iso 等等,在xencenter 上点击rescan 就可以啦

这样在你安装新的centos 和 debian 的时候,就可以直接选择这些iso 啦

 

 

Xenserver 上安装 centos 和 debian

以前很傻呼呼的,都是直接用的minimal cd 安装的,现在知道了原来还可以用URL 的方式安装

对于centos来说,可以使用这些URL:

http://mirrors.sonic.net/centos/6/os/x86_64/

http://less.cogeco.net/centos/6/os/x86_64/

http://centos.mirror.constant.com/6/os/x86_64/

http://centos.mirror.root.lu/centos/6/os/x86_64/

http://mirror.nl.leaseweb.net/centos/6/os/x86_64/

http://repos.lax.quadranet.com/centos/6/os/x86_64/

亚洲的可选:

http://centos.mirror.cdnetworks.com/6/os/x86_64/

安装完以后安装 xentools:

mount /dev/cdrom /media
cd /media/Linux/

./install.sh

 

在 xenserver上安装debian,可以使用一下URL:

ftp://ftp.us.debian.org/debian

安装xen tools:

mount /dev/cdrom /media
cd /media/Linux/

./install.sh

在Xenserver 的 VM 上用 GUI 的方式安装 CentOS

最近一阵子一直在用 虚拟化技术,既可以充分利用资源,也可以省下很多在购买cPanel 的license 的费用

但是,默认centos 安装是 text, 也就是说你不能选择创建自己的分区,必须使用LVM 等等。 但是我的一台xenserver 的服务器上,有一个2TB 的硬盘,还有一个 120G 的SSD

我是想把 mysql 放在 ssd 上,其余的放在 sata 上,这样的话就不能使用 LVM,必须自己创建分区。

更多