出家如初,成佛有余

在linux下使用nfs及软链接解决图片文件共享问题

Posted in Uncategorized by chuanliang on 2008/09/13

    由于在门户社区中,诸如图片、下载软件这样的资源都较大,且在下载过程中,对带宽资源的占用也较大,因此为不影响正常业务应用,一般情况下都是将图片等资源部署到一台单独的服务器上以分配单独的带宽(在同一台服务器上也将这些资源存放在磁盘空间较大的地方),此种情况下图片等资源与应用不一定在同一台服务器上,即使在同一台服务器上也不一定部署在同一目录下。方案如下:

1、 图片等资源部署在单独的另外一台服务器上

此种模式可以通过linux的nfs来把完成远程文件mount为本地的文件目录(类似于windows的网络共享),步骤如下:

下面以将192.168.1.199(NFS服务器端)上的目录/liang mount到192.168.1.202(NFS客户端)上为例,说明一下远程mount的实现

1) NFS服务端(192.168.1.199)执行如下操作

  • 在NFS服务端(192.168.1.199)修改/etc/exports,内容如下
         /liang 192.168.1.0/255.255.255.0(ro,no_root_squash,sync)

格式如下:directory machine1(option11,option12)

       注意:好像采用很多文档所说的 /liang 192.168.1.*(ro,no_root_squash,sync)存在问题
  • 在NFS服务器端启动NFS:

/etc/rc.d/init.d/portmap start

/etc/rc.d/init.d/nfs start

  • exportfs命令:

在启动了NFS之后又修改了/etc/exports后可以用exportfs命令来使改动立刻生效,命令格式如下:

exportfs [-aruv]

-a :全部mount或者unmount /etc/exports中的内容

-r :重新mount /etc/exports中分享出来的目录

-u :umount 目录

-v :在 export 的时候,将详细的信息输出到屏幕上。

2) 在NFS客户端(192.168.1.202)执行如下操作

  • 建立本地mount点目录

mkdir /liang

  • mount远端目录到本地目录

mount 192.168.1.199:/liang /liang

  • 修改/etc/fstab以在系统重启时候自动mount:
     # device       mountpoint     fs-type     options      dump fsckorder
     192.168.1.199:/liang  /liang    nfs          rw            0    0
  • showmout命令

-e :显示指定的NFS SERVER上export出来的目录。

-a :是用来显示已经mount上本机nfs目录的cline机器,一般在NFS SERVER上使用

2、 图片等资源与应用部署在同一台服务器上,但资源目录与应用目录不在一处

此种情况,采用linux的软链接把图片等资源链接链接到应用的目录下。

ln  -s /image /www/newwap/wap/image

由于安全上的考虑,tomcat及jboss缺省情况下都不允许访问软链接的文件,改动如下:

在conf/server.xml中或conf/Catalina/localhost(根据虚拟主机配置情况做相应改变)下的context中增加如下内容:

<Context path=”” docBase=”/www/newwap/wap”  allowLinking=”true”>

<Resources className=”org.apache.naming.resources.FileDirContext”

allowLinking=”true”/>

<Logger className=”org.apache.catalina.logger.FileLogger”/>

</Context>

3、参考资料

http://nfs.sourceforge.net/nfs-howto/ar01s04.html

Technorati Tags: ,,,,,

No Responses Yet

Subscribe to comments with RSS.

  1. goodhawk said, on 2008/09/29 at 08:25

    第2个方法我也尝试在Oracle ERP 商务套件使用, 但是上面挂得实在是太复杂了, 研究了一下, 也没有开启出来,:-) good solution !

  2. jerry said, on 2008/12/05 at 17:04

    在jobss下配置哪个文件,可以使jboss访问软链接?如何配置?

  3. chuan liang said, on 2008/12/06 at 09:23

    主要看你jboss使用的servlet容器的配置方式(例如jboss jetty、jboss tomcat),如果使用的是 jboss tomcat的方式,实际上还是修改tomcat的配置文件(包括修改jboss的监听端口等也修改此文件),由于jboss各个版本3.x 和4.x对tomcat的集成方式不完全相同,你根据你使用的版本找一下tomcat的配置文件试试。
    jboss 4.x的配置一般为:
    server/default/deploy/jboss-web.deployer/server.xml
    由于手上没有测试环境,你自己测试一下试试。应该没问题的

  4. […]     各个web项目要共享各种图片素材、手机软件,同时也需要处理用户自助上传的图片、软件在各个项目间的共享。采用了独立的图片服务器来集中存储各种图片资源,其他应用服务器通过NFS方式存取图片资源(在linux下使用nfs及软链接解决图片文件共享问题 )。起初觉得这种模式相对简单且容易实现,也不是很在意图片服务器的容灾问题,最近在部署应用时候没有按照步骤操作,直接把通过NFS方式共享的目录删除了(由于要在应用上传图片时候实时同步到图片服务器上,因此NFS目录是read、write的),这才意识到容灾的问题。 […]


发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: