精华内容
下载资源
问答
  • 生产环境下的高可用NFS文件服务器

    万次阅读 2016-08-26 17:31:12
    也就是说:当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。本地
    分布式复制块设备(DRBD,Distributed Replicated Block Device)是一种基于Linux的软件组件,它是由内核模块和相关程序而组成的,通过网络镜像促进共享存储系统的替换。也就是说:当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在一个文件系统中(实际上文件系统的创建也是由DRBD的同步来实现的)。本地节点(主机)与远程节点(主机)的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的。 
    

       在高可用(HA)解决方案中使用DRBD的功能,可以代替使用一个共享盘阵存储设备。因为数据同时存在于本地主机和远程主机上,在遇到需要切换的时候,远程主机只需要使用它上面的那份备份数据,就可以继续提供服务

    分布式复制块设备(DRBD)是在90年代末由Philipp Reisner和LarsEllenberg设想和开发的。开发者是为了创建一个Linux安全标准,以最低成本提供最佳的安全保障。分布式复制块设备的当前版本可以与Linux的普通版本一起使用,用于在被动系统和主动系统之间进行存储数据的同步复制。数据可以在两个系统同时读取和输入。分布式复制块设备还支持资源级别防护。分布式复制块设备(DRBD)工程与一组称为Heartbeat的管理程序一起使用。它已经被收集到Linux的一些发行版中,目前流行的Linux中只有Centos有预编译好的安装包和对应内核。

    分布式复制块设备(DRBD)是LINBIT信息技术有限责任公司的一个注册商标,总部设在奥地利维也纳。该软件已通过通用公共许可证(GNUGPL)发布,它可以在许可协议允许的范围内自由分发和修改。

     

    二、DRBD的工作原理

       理解DRBD其实就是网络RAID-1,二台服务器中就算其中的某台因电源或主板损坏而宕机而对数据无任何影响(可以用硬盘RAID-1来理解DRBD),而真正的热切换可以通过Heartbeat来实现,这样切换过程跟Keepalived类似,是非常短及不需要人为干预的。

     

    三、DRBD的使用

    DRBD需要构建在底层设备之上,然后构建出一个块设备出来。对于用户来说,一个DRBD设备,就像是一块物理的磁盘,可以在商脉内创建文件系统。DRBD所支持的底层设备有以下这些类:

    (1)一个磁盘,或者是磁盘的某一个分区

    (2)一个soft raid 设备

    (3)一个LVM的逻辑卷

    (4)一个EVMS(Enterprise Volume Management System,企业卷管理系统)的卷

    (5)其他任何的块设备

    我们的线上环境采取的第一种,即用单独的磁盘来做的DRBD。

     

    四、DRBD的配置过程

    我查阅了网上大量的教程类文间,感觉写得不算是详细;今天我登陆到服务器上,发现我的DRBD+Heartbeat已经稳定运行了161天(海量图片文件服务器),相当的稳定和高效。如果没有线上环境的同学也不要着急,大家完全可以根据我的文章用VMwareworkstation6.0+Centos5.x系统实现这个实验,达到熟练掌握的目的。需要注意的地方我会重点说明,整个测试过程参考生产服务器。

    服务器1:centos1.7788.com,单独拿一块硬盘sdb作DRBD

    服务器2:centos2.7788.com,单独拿一块硬盘sdb作DRBD

    网络拓补很简单:

    centos1.7788.cometh0:192.168.4.191,物理bridge连接,eth1:10.0.0.1,这个可以采用虚拟网段VM5

    centos2.7788.cometh0:192.168.4.192,物理bridge连接,eth1:10.0.0.2,这个可以采用虚拟网段VM5

    VIP:192.168.4.194,这个是通过Heartbeat来实现的,原理跟Keepalived类似,它通过在某台服务器的eth0:0上绑定,如果遇到故障就转移,达到高HA的目的;这个同时也是对外提供服务的IP。

    Hosts的配置在二台机器上一样,不需要太复杂,只配置心跳部分即可,即:

    centos1.7788.com 192.168.4.191 centos1
    centos2.7788.com 192.168.4.192 centos2

    另外关于时间同步一说,蛮多哥哥说要ntpdate,其实也没什么必要;不过为了线上环境的严谨,这步就做一下吧,ntpdatentp.api.bz。

     

    ◆DRBD的安装和配置

    DRBD官方网站:http://www.linux-ha.org/DRBD

    源码下载地址: http://oss.linbit.com/drbd

    FAQ: http://www.linux-ha.org/DRBD/FAQ

    目前流行的Linux中只有Centos有预编译好的安装包和对应内核.

    如果不想用Centos可以选择从源码安装.

    DRBD有两种安装模式:直接编译进内核 或 作为一个可加载的内核模块编译.

    以下使用的是CentOS 5.2 i386 系统安装与测试:

    1. 安装依赖库.

    yum install gcc gcc-c++ make glibc flex

    2. 在primary和secondary上都使用相同的安装方法:

    1. tar zxvfdrbd-8.0.6.tar.gz
    2. cd drbd-8.0.6
    3. make
    4. //make KDIR=/usr/src/linux *内核所在的位置*,如果没有更改内核可
    5. //直接运行make,软件会直接到/lib/module里边去寻找系统环境,
    6. //如果是新的内核需要对内核进行编译安装,否则make时候会错误中断掉.
    7. makeinstall

    3. 安装完主要生成命令: “drbdsetup”, “drbdadmin”

    和配置文件: /etc/drbd.conf

    启动文件: /etc/init.d/drbd

    模块文件: drbd.ko (在编译好的安装包目录下的drbd下可以找到)

    1. ls/lib/modules/2.6.18-128.el5/kernel/drivers/block/
    2. cpqarray.ko drbd.ko nbd.kosx8.ko

    所有命令和配置文件都可以在源码包编译成功的目录下面找到.

    ./scripts/drbd.conf是最原始的配置文件, 当/etc/drbd.conf被破坏, 可以直接拷贝覆盖掉.

    4. drbd采用的是模块控制的方式, 所以先要加载drbd.ko 模块.

    1. modprobedrbd
    2. 查看drbd模块是否已经加载到内核中了:
    3. lsmod | grepdrbd
    4. drbd 226352 2//有的话表示加载模块成功.

    5. 先确认两台要镜像的机器是否正常, 之间的网络是否通畅, 需要加载的硬盘是否处于umount状态.

    6. 在两台主机上都创建硬件设备drbd.

    1. mknod/dev/drbd0 b 147 0
    2. //mknod /dev/drbd1 b 1471
    3. //mknod /dev/drbd2 b147 2 如需多个drbd设备则依次去创建.

    7. 二台机器将/dev/sdb1互为镜相(两台机器配置相同).

    1. yum -y installportmap
    2. yum -y installnfs
    3. mkdir /d//创建共享目录.
    4. vim/etc/exports
    5. /d10.1.2.0/255.255.252.0(rw,no_root_squash,no_all_squash,sync)
    6. /etc/init.d/portmapstart
    7. chkconfig –level 3portmap on
    8. chkconfig –level 3 nfsoff
    9. //nfs不需要启动,也不需要设置成开机自动运行, 这些都将由后面的heartbeat来完成.

    8. 配置drbd.

    DRBD运行时,会读取一个配置文件/etc/drbd.conf.

    这个文件里描述了DRBD设备与硬盘分区的映射关系, 和DRBD的一些配置参数

    1. [root@centos1~]# cat /etc/drbd.conf
    2. #创建一个资源,名字叫r0
    3. resource r0{
    4. protocol C;
    5. #采用C协议,表示收到远程主机的写入确认后,则认为写入完成。
    6. startup { wfc-timeout 0;degr-wfc-timeout 120; }
    7. disk { on-io-errordetach; }
    8. net {
    9. timeout60;
    10. connect-int10;
    11. ping-int10;
    12. max-buffers2048;
    13. max-epoch-size2048;
    14. }
    1. syncer { rate30M; }
    2. #设置主备节点同步时的网络速率最大值
    3. on centos1.7788.com{
    4. device/dev/drbd0;
    5. disk/dev/sdb;
    6. address10.0.0.1:7788;
    7. meta-diskinternal;
    8. }
    9. on centos2.7788.com{
    10. device/dev/drbd0;
    11. disk/dev/sdb;
    12. address10.0.0.2:7788;
    13. meta-diskinternal;
    14. }
    15. }
    16. #每个主机的说明以"on"开头,分别是各自的主机名,再后面的{}为这个主机的配置;监听端口为7788,meta-disk internal即表示在同一个局域网内
    9.drbd的启动, 激活前面配置的drbd资源 “r0″. (两个节点都要执行)
    
    在启动DRBD之前,你需要分别在两台主机的hdb1分区上, 创建供DRBD记录信息的数据块.
    
    分别在两台主机上执行:
    
     
    
    1. [root@centos1/]# drbdadm create-md r0 //创建r0的资源,r0是我们在drbd.conf里定义的资源名称.
    2. [root@centos2 /]# drbdadmcreate-md r0
     
    
    现在可以启动drbd了, 分别在两台主机上执行.
    
    1. [root@centos1/]# /etc/init.d/drbd start #我喜欢用service drbdstart
    2. [root@centos2 /]#/etc/init.d/drbd start
     
    
    设置drbd开机自动启动.
    
    1. [root@centos1/]# chkconfig --add drbd
    2. [root@centos2 /]# chkconfig--add drbd
     
    
    现在可以查看drbd当前的状态, 然后在centos1上执行:
    
     
    
    1. [root@centos1/]# cat /proc/drbd
    2. version: 8.0.0(api:86/proto:86)
    3. SVN Revision: 2713build by root@centos1, 2008-06-27 14:07:14
    4. 1: cs:Connectedst:Secondary/Secondary ds:Inconsistent/Inconsistent Cr—
    5. ns:0 nr:0 dw:0 dr:0al:0 bm:0 lo:0 pe:0 ua:0 ap:0
    6. resync: used:0/31 hits:0misses:0 starving:0 dirty:0 changed:0
    7. act_log: used:0/257hits:0 misses:0 starving:0 dirty:0 changed:0
     
    
    第一行的’st’表示两台主机的状态,都是”备机”状态.
    
    ‘ds’是磁盘状态,都是”不一致”状态.
    
    这是由于,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.
    
    所以,我们需要初始化一个主机, 那么需要在centos1上执行.
    
    10.初始化centos1(这步只要在主节点上操作)
    
     
    
    1. [root@centos1/]# drbdsetup /dev/drbd0 primary -o//定义为主节点.
    2. # drbdadm primaryr0
     
    
    第一次设置主节点时用 drbdadm 命令会失败, 所以先用drbdsetup 来做, 以后就可以用drbdadm了.
    
    再次查看drbd当前的状态.
    
     
    
    1. [root@centos1~]# cat /proc/drbd
    2. version: 8.0.0(api:86/proto:86)
    3. SVN Revision: 2713build by root@centos1, 2008-06-27 14:07:14
    4. 1: cs:SyncSourcest:Primary/Secondary ds:UpToDate/Inconsistent Cr—
    5. ns:18528 nr:0 dw:0dr:18528 al:0 bm:1 lo:0 pe:0 ua:0 ap:0
    6. [>...................] sync’ed: 0.3%(8170/8189)M
    7. finish: 6:46:43speed: 336 (324) K/sec
    8. resync: used:0/31 hits:1156misses:2 starving:0 dirty:0 changed:2
    9. act_log: used:0/257hits:0 misses:0 starving:0 dirty:0 changed:0
     
    
    现在主备机状态分别是’主/备’, 主机磁盘状态是’实时’, 备机状态是’不一致’.
    
    在第3行, 可以看到数据正在同步中, 即主机正在将磁盘上的数据, 传递到备机上.
    
    现在的进度是0.3%.
    
    设置完之后的第一次同步耗时比较长, 因为需要把整个分区的数据全部同步一遍.
    
    第一次同步完成之后, 就可以对drbd的设备创建文件系统了:
    
    稍等一段时间, 在数据同步完后, 再查看一下两台机器的DRBD状态:
    
     
    
    1. [root@centos1~]# cat /proc/drbd
    2. SVN Revision: 3048 build byroot@centos1.7788.cn, 2010-01-20 06:09:12
    3. 0: cs:Connectedst:Primary/Secondary ds:UpToDate/UpToDate C r—
     
    
     
    
    1. [root@centos2~]# service drbd status
    2. SVN Revision: 3048 build byroot@centos2.7788.cn, 2010-01-20 06:09:02
    3. 0: cs:Connectedst:Secondary/Primary ds:UpToDate/UpToDate C r—
     
    
    现在磁盘状态都是’实时’, 表示数据同步完成了.
    
    #查看drbd的实时状态,我喜欢用service drbd status
    
    11.drbd的使用.
    
    现在可以把主机上的DRBD设备挂载到一个目录上进行使用.
    
    备机的DRBD设备无法被挂载, 因为它是用来接收主机数据的, 由DRBD负责操作.
    
    在centos1主服务器上执行:
    
     
    
    1. [root@centos1/]# mkfs.ext3 /dev/drbd0
    2. [root@centos1 mnt]# mount/dev/drbd0 /d //只要在主节点上操作
     
    
    现在, 就可以对 /d 分区进行读写操作了.
    
    注意: secondary节点上不允许对drbd设备进行任何操作, 包括只读.
    
    所有的读写操作只能在primary节点上进行.
    
    只有当primary节点挂掉之后, secondary节点才能提升成为primary节点, 继续进行读写操作. 
    
     
    
    五、Heartbeat的配置过程
    
    真实的服务器之间的连接用交叉线连接,本着简单高效的原则,直接购买即可。
    
    1. 安装, 在两台主机都同样的安装.
    
     
    
    1. yum -y installheartbeat
    2. #奇怪的事,此命令要执行二次,不然heartbeat还真安装不上去,奇怪的问题。
    3. 其中Heartbeat配置共涉及3个文件.
    4. /etc/ha.d/ha.cf
    5. /etc/ha.d/haresources
    6. /etc/ha.d/authkeys
    7. /etc/ha.d/resource.d/killnfsd
     
    
    2. 二个节的配置的配置文件都是一样, 文件内容如下
    
     
    
    1. logfile/var/log/ha-log
    2. #定义HA的日志名字及存放位置
    3. logfacilitylocal0
    4. keepalive 2
    5. #设定心跳(监测)时间为2秒
    6. deadtime 5
    7. #死亡时间定义为5秒
    8. ucast eth110.0.0.2
    9. #采用单播方式,IP地址指定为对方IP
    10. auto_failbackoff
    11. #服务器正常后由主服务器接管资源,另一台服务器放弃该资源
    12. node centos1.7788.comcentos2.7788.com
    13. #定义节点
     
    
    2. 编辑双机互联验证文件: authkeys
    
     
    
    1. [root@centos1ha.d]# vim /etc/ha.d/authkeys
    2. auth 1
    3. 1crc
    4. //需要将/etc/ha.d/authkeys设为600的权限.
    5. [root@centos1 ha.d]#chmod 600 /etc/ha.d/authkeys
    6. [root@centos2 ha.d]# chmod 600/etc/ha.d/authkeys
     
    
    3. 编辑集群资源文件: haresources
    
     
    
    1. [root@centos1ha.d]# vim /etc/ha.d/haresources
    2. centos1.7788.comIPaddr::192.168.4.194/24/eth0 drbddisk::r0Filesystem::/dev/drbd0::/d::ext3 killnfsd
    3. #此文件二台机器上配置一样,千万不要自做聪明在另一台机器上配置成centos2.7788.com
     
    
    4.编辑脚本文件killnfsd,目的其实就是为了重启nfs服务。这是因为NFS服务切换后,必须重新mount一下nfs共享出来的目录,否则会出现stale NFS file handle的错误。
    
     
    
    1. #[root@centos1ha.d]# vim /etc/ha.d/resource.d/killnfsd
    2. #killall -9 nfsd;/etc/init.d/nfs restart; exit 0
    3. #[root@centos1ha.d]# chmod 755 /etc/ha.d/resource.d/killnfsd
     
    
    5. 在二个节点启动Heartbeat即可,先在主节点启动
    
    1. [root@centos1/]# service heartbeat start
    2. [root@centos2 /]# serviceheartbeat start
    3. #这时就可以在另外的机器上面,正常挂载192.168.4.194:/d到自己的/mnt/data下进行正常的读写了,client会认为这个就是一个提供NFS的机器。
     
    
    
    六、测试
    
    
    
    
    
     
    
    
    
    
    
        由于我的线上环境已经很稳定了,这个测试结果是让大家进行的,让大家熟悉DRBD+Heartbeat;我建议做完此步后再做测试,看Heartbeat是否能做到真正的热切换。
    
    
    
    
    
     
    
    
    
    
    
    测试一、在另一台FreeBSD8下挂载192.168.4.194:/d,向里面写数据时,忽然重新启动主DRBD,看此时写数据有影响不,发现DRBD+Heartbeat正常切换还是需要些时间的;
    
    
    
    
    
     
    
    
    
    
    
    测试二、正常状态下关机Primary机,然后看数据有无问题,观察DRBD的status;然后等主机启动后,再观察变化,然后再关机secondary,然后再启动,观察DRBD变化及Heartbeat起作用了没。
    
    
    
    
    
     
    
    
    
    
    
    测试三、假设此时把primary的eth0 给ifdown了, 
    然后直接在secondary上进行主的提升,并也给mount了, 发现在primary上测试拷入的文件确实同步过来了。之后把primary的 
    eth0 恢复后, 发现没有自动恢复主从关系, 经过支持查询,发现出现了drbd检测出现了Split-Brain 的状况, 
    两个节点各自都standalone了,故障描术如下:Split-Brain detected, dropping 
    connection!这个即时传说中的脑裂了,DRBD官方推荐手动恢复(生产环境下出现这个机率的机会很低的,谁会去故障触动生产中的服务器)
    
    
    
    
    
    以下手动恢复Split-Brain状况:
    
    
    
    
    
    i. 在secondary上:
    
    
    
    
    
    ii.在primary上:
    
    1. drbdadmdisconnect all
    2. drbdadm connectr0
     
    
    
    测试四、假设Primary因硬件损坏了,需要将Secondary提生成Primay主机,如何处理,方法如下:
    
    在primaty主机上,先要卸载掉DRBD设备.
    
    [root@centos1 /]# umount /d
    
    将主机降级为”备机”
    
    
    
    现在,两台主机都是”备机”.
    
    在备机centos2上, 将它升级为”主机”.
    
    
    
    现在centos2成为主机了.
    
    至此,整个实验结束了;建议大家多做测试和总结,几十遍后就会完全掌握其用法,祝大家Happy先了。
    
    1. [root@centos2/]# drbdadm primary r0
    2. [root@centos2 /]# cat/proc/drbd
    3. 1: cs:Connectedst:Primary/Secondary ds:UpToDate/UpToDate C r—
    1. [root@centos1/]# drbdadm secondary r0
    2. [root@centos1 /]# cat/proc/drbd
    3. 1: cs:Connectedst:Secondary/Secondary ds:UpToDate/UpToDate C r—
    1. drbdadmsecondary r0
    2. drbdadm disconnectall
    3. drbdadmin ----discard-my-data connect r0
    展开全文
  • 高可用性的HDFS:Hadoop分布式文件系统深度实践

    千次下载 热门讨论 2013-11-29 13:52:13
    本书专注于Hadoop 分布式文件系统(HDFS)的主流HA 解决方案,内容包括:HDFS 元数据解析、Hadoop 元数据备份方案、Hadoop Backup Node 方案、AvatarNode 解决方案以及最新的HA 解决方案Cloudrea HA Name Node 等。...
  • 电商项目由于服务端需要存储商家上传的海量的图片,知识库系统需要存储大量的用户上传的各种格式的文件,为了实现高可用应对并发,所以需要单独抽离出一套文件服务器系统来处理,该文件服务器须满足以下几个特点:...

    最近在重构以前做过的电商项目,知识库项目的服务器架构。电商项目由于服务端需要存储商家上传的海量的图片,知识库系统需要存储大量的用户上传的各种格式的文件,为了实现高可用应对高并发,所以需要单独抽离出一套文件服务器系统来处理,该文件服务器须满足以下几个特点:负载均衡、线性扩容、冗余备份。

    以JavaWeb项目为例。

    之前的方式:

    打成一个war包放在一台Tomcat容器下。将用户上传的文件直接存储在webapp目录。

    这种,方式的缺点是显而易见的:Tomcat本身不适合做静态资源的存储访问。性能比较差。但总得来说,最初用户量不大时,这种架构是没有什么问题的。但后期,随着用户量的增大,用户对文件的访问速度越来越慢,更要命的是随着并发量的增大,由于一台Tomcat最多只能应付400多的并发量,超过这个并发量,tomcat随时会挂掉。所以,需要将其扩展到集群架构。

    架构升级:

    假设我们现在多了一台Tomcat服务器,并采用了负载均衡。

    此时,如果还将用户存储的文件放在webapp目录下,其问题是致命的。假设A用户在上传文件,此时上传文件1到Tomcat1,上传成功后,用户去查看自己刚刚上传的文件,由于负载均衡,假设他此时访问的是Tomcat2,由于Tomcat2 webapp目录下并不存在文件1,就会报404。所以,我们的做法需要引进单独的文件服务器系统。

    最终升级:

       

    最终解决方案:搭建一个文件服务器,专门保存文件。可以使用分布式文件系统FastDFS。由于Tomcat并不适合做静态资源的访问,Apache和Nginx对静态资源的访问比较友好。我们采用Nginx作为文件服务器端的Http服务器。

    什么是FastDFS?

    FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

    喜大普奔,这样我们可以用FastDFS构建一个存储空间可以横向扩展,提供一个统一的访问方式,支持每个节点有备份机,可以实现服务器的高可用的分布式文件系统。

    FastDFS架构

    FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。
    Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。
    Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。

    服务端两个角色:

    Tracker:管理集群,tracker也可以实现集群。每个tracker节点地位平等。收集Storage集群的状态。

    Storage:实际保存文件。Storage分为多个组,每个组之间保存的文件是不同的。每个组内部可以有多个成员,组成员内部保存的内容是一样的,组成员的地位是一致的,没有主从的概念。

    文件上传的流程

    客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名:

     

    • 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
    • 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
    • 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。(目录00-FF,两级=256*256个目录)
    • 文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

    文件下载

    由于整个文件集群的搭建比较复杂,具体可以下载参考:

    分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群.pdf

    图片服务器使用

    这里我采用的是maven工程,由于maven中心仓库没有相关的仓库,需要先将FastDFS官方提供的客户端Java工程转成maven工程,在本地仓库打成Jar包。

    FastDFS的Jar包和maven工程

    上传图片测试

    /**
     * 
     * @ClassName: FastDFSTest
     * @Description: FastDFS图片服务器测试类
     * @Company: xx有限公司
     * @author 吴杰
     * @date 2018年8月8日
     */
    public class FastDFSTest {
    
    	@Test
    	public void uploadFastDFSFile() throws Exception {
    		// 1、向工程中添加jar包
    		// 2、创建一个配置文件。配置tracker服务器地址
    		// 3、加载配置文件
    		ClientGlobal.init("I:/Code/EclipseEEWorkspace/freesub-manager-web/src/main/resources/resource/fastdfsclient.conf");
    		//4、创建一个TrackerClient对象。
    		TrackerClient trackerClient = new TrackerClient();
    		//5、使用TrackerClient对象获得trackerserver对象
    		TrackerServer connection = trackerClient.getConnection();
    		//6、创建一个StorageServer的引用
    		//7、创建一个StorageClient对象:trackerserver、StorageServer两个参数
    		StorageClient storageClient = new StorageClient(connection, null);
    		//8、使用StorageClient对象上传文件
    		String[] paths = storageClient.upload_file("C:/Users/hp/Desktop/服务器系统架构演变.png", "png", null);
    		for(String s : paths) {
    			System.out.println(s);
    		}
    	}
    }

    测试结果:

    访问图片地址成功:

    查看Linux图片服务器文件物理地址,确实有这种图片

    批量上传效果:

    上传成功!

    展开全文
  • 润乾报表授权文件v4.0服务器可用的授权文件润乾报表授权文件v4.0服务器可用的授权文件润乾报表授权文件v4.0服务器可用的授权文件润乾报表授权文件v4.0服务器可用的授权文件润乾报表授权文件v4.0服务器可用的授权文件...
  • 服务器高可用性——HA篇

    千次阅读 2017-11-12 18:06:00
    今天小编要和读者聊聊有关服务器高可用性的问题,当前读者应该知道,国内一些从事电子商务行业的服务器性能是相当的强大的(淘宝、阿里巴巴等等),这些电子商务的主站每秒钟的访问量可是相当的可观,读者试着想想...
     今天小编要和读者聊聊有关服务器的高可用性的问题,当前读者应该知道,国内一些从事电子商务行业的服务器性能是相当的强大的(淘宝、阿里巴巴等等),这些电子商务的主站每秒钟的访问量可是相当的可观,读者试着想想如果服务器当掉了咋办,回答可能是肯定还有其他服务器替代啦,对,可是如何迅速替代让用户感觉不到已经有服务器当掉了呢,那便引出小编今天要谈的HA。

          HA是啥?High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。Linux-HA 项目得到了广泛的应用,是很多有趣的高可用性解决方案的重要组成部分。

          高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。

    今天小编的主要任务就是来实现HA群集。

    Project 1:了解高可用性群集的架构

    如图1-1所示,高可用性群集的几个重要部分

    clip_image002

    图1-1

    1)共享信息层

    在基础架构上实现心跳信息探测。双方节点可以随时探测到对方的心跳信息,以实现对对方主机工作状态的探测。三类控制信息:心跳(Heartbeats),集群事务信息(Cluster Transition Messages),重传信息(Retransmission Request)。 配置文件:/etc/ha.d/ha.cf。各节点间域共享密钥,实现节点间互相通信的认证。加密方式:MD5、HMAC-SHA1 。常用实现软件:HeartBeat(小编这里就是使用的这个)、keepalived、ultramonkey、openais/corosync。红帽官方提供的集群套件RHCS底层使用的通信机制就是openais/corosync。

    2)资源分配子层

    在资源分配上定义资源种类,界定资源归属,每个服务需要哪些资源及这些资源之间的前后次序。

    集群资源管理器(CRM,常用软件pacemaker),管理双方向外提供服务所需用到的资源,包括IP地址、Web服务、共享存储等等。而这些资源需要依靠集群信息库CIB(XML文件)来定义,同时还必须保证一旦某个节点上的XML文件更新,即刻通知其他节点上的XML也要及时更新。

    策略引擎(PE Policy Engine):定义法定人数以及根据法定人数所做出的动作等等。

    本地资源管理器(LRM Local Resource Manager):监控本地某个资源的工作状况。

    3)资源层

    本地资源代理(Resource Agent),脚本文件,一旦集群资源管理器发现某个资源工作异常,立即通知本地资源代理重启服务。常用方法:

    (1)Heartbeat v1(小编这里使用的);

    (2)使用脚本LSB scripts (Linux Standards Base );

    (3)OCF Open Cluster Format 开放集

    Project 2:常用的架构模型

    1)主从架构:正常情况下只有主服务器工作,当主服务器当掉从服务器立即启用

    2)互为主从架构:两台服务器提供不同的服务,相互为主从架构,两台服务器同时工作

    3)多主机架构

    N台主机组成一个集群,分别提供不同的服务,一台服务器空闲做备节点。或者全部处于工作状态,一台服务器出故障,立刻将服务转移到其他主机上。各节点之间需要以多播的形式将自己的健康情况发送给其他主机。

    Project 3:高可用性集群的实现

    1)主从架构

    step 1:实验拓扑规划,如图3-1-1所示

    clip_image004

    图3-1-1

    Primary eth0 192.168.1.100

               eth1 192.168.2.10 //心跳测试

    Standby eth0 192.168.1.200

                 eth1 192.168.2.20 //心跳测试

    向外提供Web服务IP:192.168.1.150

    step 2:系统与软件资源需求安装

    小编的系统是Red Hat EnterPrise Linux 5.4

    小编的系统上已经安装了apache2.2.3和php环境,如果读者不会安装的话可以参见小编的博客http://wnqcmq.blog.51cto.com/5200614/1177203

    小编将这些软件包放在/root/heart目录下了,然后使用不加gpg验证的本地yum安装完成

    heartbeat-2.1.4-11.el5.i386.rpm

    openhpi-libs-2.14.0-5.el5.i386.rpm

    heartbeat-pils-2.1.4-11.el5.i386.rpm perl-MailTools-2.04-1.el5.rf.noarch.rpm

    heartbeat-stonith-2.1.4-11.el5.i386.rpm perl-TimeDate-1.16-5.el5.noarch.rpm

    libnet-1.1.5-1.el5.i386.rpm

    primary服务器的安装配置

    # cd heart/

    # yum localinstall ./* --nogpgcheck

    这样安装省了很多事,系统会自动解决依赖关系,但是读者还要记着安装完成之后查询一下heartbeat到底产生了哪些文件

    # rpm -ql heartbeat

    其中/usr/share/doc/heartbeat-2.1.4/目录下就存放了heartbeat的样例配置文件

    接下来的工作是修改主机名,Heartbeat依靠服务器的主机名来识别服务器,因此使用hostname命令得到的结果必须与uname -n 结果保持一致。

    # vim /etc/sysconfig/network //修改主机名称;

    HOSTNAME=primary.a.com

    # hostname primary.a.com

    # vim /etc/hosts //修改主机地址映射;

    192.168.1.100 primary.a.com primary

    192.168.1.200 standby.a.com standby

    # cd /etc/ha.d/

    # cp /usr/share/doc/heartbeat-2.1.4/ha.cf ./

    # cp /usr/share/doc/heartbeat-2.1.4/authkeys ./

    # cp /usr/share/doc/heartbeat-2.1.4/haresources ./

    # vim ha.cf //定义各节点之间Heartbeat进程如何通信;

    debugfile /var/log/ha-debug //设置调试日志文件名

    logfile /var/log/ha-log //设置其他日志文件名

    keepalive 2 //设定heartbeat之间的时间间隔为2秒;

    deadtime 30 //在30秒后宣布节点死亡;

    warntime 10 //在日志中发出late heartbeat警告之前等待的时间,单位为秒;

    udpport 694 // 使用端口694进行bcast和ucast通信,默认参数;

    bcast eth1 //在eth1接口上使用广播heartbeat-”心跳”;

    node primary.a.com //定义节点;

    node standby.a.com //定义节点;

    # dd if=/dev/urandom bs=512 count=1 | openssl md5 //生成节点间域共享密钥;

    14df2a6b5b26b510e7d5d5b16b7cc10b

    # vim authkeys //定义心跳探测包使用哪种加密方式;

    auth 1

    1 sha1 14df2a6b5b26b510e7d5d5b16b7cc10b

    # chmod 600 authkeys //仅允许管理员修改文件;

    # cp /etc/init.d/httpd /etc/ha.d/resource.d/

    # vim haresources //定义资源;文件给出了相应的格式

    primary.a.com 192.168.1.100/24/eth0/192.168.1.255 httpd

    standby 服务器的配置

    从服务器的主机名称为standby.a.com,安装heartbeat的方法同主服务器一致。/etc/hosts文件、Heartbeat的配置文件也必须与主机保持一致。因此这里采用将primary上的配置文件直接远程复制过来的方法:

    # cd /etc/ha.d/

    # scp 192.168.1.100:/etc/ha.d/ha.cf ./

    # scp 192.168.1.100:/etc/ha.d/authkeys ./

    # scp 192.168.1.100:/etc/ha.d/haresources ./

    # cp /etc/init.d/httpd /etc/ha.d/resource.d/

    # chmod 600 authkeys

    step 3:集中测试

    分别重新启动primary和standy服务器的heartbeat服务,如图3-1-2、3-1-3所示

    clip_image006

    图3-1-2

    clip_image008图3-1-3

    这样就启动成功了,接下来编写测试网页,小编这里为了让读者看的清楚两台服务器的工作,所以两个测试网页的内容是不同的,而在实际的应用中两台服务器上的内容肯定是一致的啦。

    primary服务器的/var/www/html/index.php内容

    <?php

    for($i=0;$i<9;$i++)

    echo $i."web1"."<br/>";

    ?>

    standby服务器的/var/www/html/index.php内容

    <?php

    for($i=0;$i<9;$i++)

    echo $i."web2"."<br/>";

    ?>

    在客户PC的浏览器上输入http://192.168.1.150试试看,结果如图3-1-4所示

    clip_image010

    图3-1-4

    以上结果是在primary服务器为主服务器的情况才会出现的,那么现在小编就来模拟以下主服务器成为备份服务器的情况再来看看,这里heartbeat提供了一个工具来切换服务器状态,在/usr/lib/heartbeat/目录下,这里小编在切换服务器状态的同时,来监控一下两台服务器的日志,让读者清楚两台服务器之间是如何切换主从关系的

    在primary服务器上执行

    # cd /usr/lib/heartbeat/

    # ./hb_standby //请求成为辅助服务器

    主服务器的日志情况如图3-1-5所示:

    clip_image012

    图3-1-5

    从服务器的日志情况如图3-1-6所示:

    clip_image014

    图3-1-6

    小编现在来说明一下切换流程

    1.primary服务器发出申请说自己想成为standby服务器,并且说明standby服务器可以拿走资源

    2.”心跳“(广播)被standby服务器抓到,知道primary要变为standby服务器

    3.primary开始释放资源,可以看到主服务器关闭了httpd服务器,当掉了192.168.1.150

    4.standby开始申请资源,可以看到standby服务器开始启动httpd服务器,并且启用对外IP192.168.1.150

    5.双方工作都完成显示success

    此时在刷新一下PC机的浏览器看看,结果如图3-1-7所示

    clip_image016

    图3-1-7

    看到了吧,成功转到standby服务器了

    刚刚不是standby服务器成为了主服务器么,那么下面小编就来模拟一下主服务器当掉的情况,这里小编将监控“心跳”的eth1端口当掉

    # ifconfig eth1 down

    可以在primary服务器的日志上看到如图3-1-8所示的信息

    clip_image018

    图3-1-8

    此时再次刷新一下PC的浏览器看看,结果如图3-1-9所示

    clip_image020

    图3-1-9

    primary服务器成功切换成为主服务器啦

    到这里主从架构的配置以及测试小编就完全演示完了,接下来的工作交个读者你去动手操作啦,接下来的工作是完成互为主从架构的案例啦

    2)互为主从架构

    step 1:实验拓扑规划,如图3-2-1所示:

    clip_image022

    图3-2-1

    这里小编仍然使用主从架构的环境,稍作修改即可

    step 2:

    primary服务器的资源配置修改

    # vim /etc/ha.d/haresources

    primary.a.com 192.168.1.150/24/eth0/192.168.1.255 httpd

    standby.a.com 192.168.1.151/24/eth0/192.168.1.255 vsftpd //添加ftp

    # touch /var/ftp/primary //作为区分用

    standby服务器的资源配置修改

    # vim /etc/ha.d/haresources

    primary.a.com 192.168.1.150/24/eth0/192.168.1.255 httpd

    standby.a.com 192.168.1.151/24/eth0/192.168.1.255 vsftpd

    # touch /var/ftp/standby

    step 3:重新启动两台服务器的heartbeat服务

    # service heartbeat restart

    step 4:集中测试

    仍然在PC机的浏览器输入http://192.168.1.150,结果如图3-2-2所示

    clip_image024

    图3-2-2

    PC浏览器输入ftp://192.168.1.151试试,结果如图3-2-3所示:

    clip_image026图3-2-3

    看见了吧,两台服务器相互备份,都运行有应用服务,读者可以自己测试一下将其中一台服务器当掉,看看结果,小编这里就不掩饰了,有啥问题请联系小编哈,至于第三种模式,由于小编的主机有限就没做了,如果读者能把上面两种模式理解透彻,第三种很容易实现啦。

    编后语:HA集群一般都是以两个节点的形式出现的,单机处理能力有限,所以当服务器压力较大时,想扩容服务器的处理能力往往得把以前的服务器淘汰掉,浪费了以前的投资;因此对于高访问性需求的商业性网站单纯想使用HA群集来解决问题是不可行的,如果再结合LVS来使用,那便是极好的了,至于LVS的实现小编会在后续的博客中道来,敬请关注哈。。。。。


    本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1179525


    展开全文
  • 最近在工作上接触到了...它是用来存储文件的系统,并且与使用的语言无关,使得文件储存在云端变得非常方便。seaweedfs也是一个非常优秀的开源项目,Seaweedfs的设计原理是基于 Facebook 的一篇图片存储系统的论

    最近在工作上接触到了seaweedfs,由于要用到它。所以准备去仔细探究一下。

    那首先我们来分析一下seaweedfs是什么?seaweedfs是一个非常优秀的由 golang 开发的分布式存储开源项目。它是用来存储文件的系统,并且与使用的语言无关,使得文件储存在云端变得非常方便。seaweedfs也是一个非常优秀的开源项目,Seaweedfs的设计原理是基于 Facebook 的一篇图片存储系统的论文Facebook-Haystack。一听就感觉作者很NB,有兴趣的可以去看一看Seaweedfs的源码,本文就讲解seaweedfs的搭建和简单应用。

    seaweedfs的特点:
    1 可以成存储上亿的文件(根据你硬盘大小变化)
    2 速度刚刚的

    接下来,便让我们开始进入正文。

    一、seaweedfs的搭建

    seaweedfs可以编译安装(需要VPN,网络环境不好,最好不用该方法安装),也可以下载释放版本镜像安装。
    

    1、安装GO环境

    (1)、下载go语言包,go语言包地址
    wget 地址

    比如:

    wget https://golangtc.com/static/go/1.9.2/go1.9.2.linux-amd64.tar.gz
    (2)、解压到指定目录,并添加环境变量
    sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz

    添加环境变量

    #工作目录
    export GOPATH=/opt/go
    #解压目录
    export GOROOT=/usr/local/go
    export GOARCH=386
    export GOOS=linux
    export GOBIN=$GOROOT/bin
    export GOTOOLS=$GOROOT/pkg/tool/
    export PATH=$PATH:$GOBIN:$GOTOOLS
    (3)、安装git、mercurial
    sudo apt-get install git
    suod apt-get install mercurial
    (4)、安装seaweedfs

    如果要编译安装运行下面命令,没有VPN,可以忽略下面命令:

    go get github.com/chrislusf/seaweedfs/go/weed 

    下载安装:seaweedfs地址

    wget  https://github.com/chrislusf/seaweedfs/releases/download/0.76/linux_amd64.tar.gz
    
    sudo tar -zxvf linux_amd64.tar.gz
    
    (5)、配置运行seaweedfs

    进入解压目录,以守护进程启动seaweedfs的主服务及集群(在启动前,先要创建相应的目录,/data/fileData,/data/t_v1,/data/t_v2,/data/t_v3)

    sudo nohup ./weed master -mdir=/data/fileData -port=9333 -defaultReplication="001" -ip="ip地址" >>/data/fileData/server_sfs.log &
    
    sudo ./weed volume -dir=/data/t_v1 -max=5 -mserver="ip地址:9333" -port=9080 -ip="ip地址" >>/data/t_v1_sfs.log &
    
    sudo ./weed volume -dir=/data/t_v2 -max=5 -mserver="ip地址:9333" -port=9081 -ip="ip地址" >>/data/t_v2_sfs.log &
    
    sudo ./weed volume -dir=/data/t_v3 -max=5 -mserver="ip地址:9333" -port=9082 -ip="ip地址" >>/data/t_v3_sfs.log &

    将上面的ip地址换为具体的ip即可,默认可设为localhost。volume多少可以根据自己的情况添加。mdir、dir是指定文件存储路径。

    一个 MasterServer 对应三个 VolumeServer ,设置复制模式为 “001” , 也就是在相同 Rack 下复制副本为一份,也就是总共有两份。如下:
    描述

    更多的其他配置可以查看文档

    二、seaweedfs的文件应用

    访问服务器ip地址:9333,可以看到如下界面
    seaweedfs

    (1)获取fid,使用GET或POST访问路径http://localhost:9333/dir/assign,获取fid和上传文件地址,seaweedfs会返回json的结果。

    如下:

    curl -X POST http://localhost:9333/dir/assign

    得到结果:

    {"fid":"1,08e684f060","url":"1ocalhost:9080","publicUrl":"localhost:9080","count":1}

    fid就是上传的标志。
    使用url或者publicUrl加上fid,就是文件上传的地址。如下:

     http://localhost:9080/1,08e684f060

    接着就可以发起一个PUT或POST请求到上面的地址,把文件上传上去。

    curl -X PUT -F file=@/home/back.png http://localhost:9080/1,08e684f060

    结果如下:

    {
        "name": "back.png",
        "size": 64300
    }

    (2)如果要更新一个文件,直接发起POST或者PUT请求到url+fid的地址即可。fid就是保存图片使用的fid。

    (3)删除图片发起一个DELETE请求即可。

    curl -X DELETE http://localhost:8080/1,08e684f060

    (4)查看文件,需要fid。就是刚刚上传图片得到的fid。可以将其保存在数据库当中,查找文件时再调用。
    当有多个Volume集群时,可以通过参数指定查看某个卷。

    curl http://localhost:9333/dir/lookup?volumeId=2

    得到具体的地址:

    {"volumeId":"2","locations":[{"url":"localhost:9081","publicUrl":"localhost:9081"}]}

    然后访问具体的路由:

    http://localhost:9081/fid

    比如:http://localhost:9081/1,08e684f060
    可以带后缀,也可以不带。
    http://localhost:9081/1,08e684f060.jpg
    还可以带一些限定参数:
    http://localhost:9081/1,08e684f060.jpg
    http://localhost:9081/1,08e684f060.jpg?height=200&width=200
    http://localhost:9081/1,08e684f060.jpg?height=200&width=200&mode=fit
    http://localhost:9081/1,08e684f060.jpg?height=200&width=200&mode=fill

    其实刚刚上传的是在9080的volume1,9081是volume2。但是通过fid加上具体的volume端口,依旧可以访问到图片的地址。

    三、seaweedfs客户端使用

    seaweedfs的使用与语言无关,都可以方便进行封装。github上也有一些开放的client。比如这个java的客户端。作者把线程分配、HTTP请求、文件操作进行了封装,更加方便。但是目前作者没怎么更新了,还有些问题。

    我把客户端的java代码进行了重新覆写,上传到github了,seaweedfs-java-client欢迎大家start。

    这里还有一些其他语言的客户端,大家也可以去学习更改一下:

    java-client:https://github.com/Shuyun123/seaweedfs-java-client

    php-client:https://github.com/micjohnson/weed-php

    node-client:https://github.com/cruzrr/node-weedfs

    python-client:https://github.com/darkdarkfruit/python-weed

    scala-client:https://github.com/chiradip/WeedFsScalaClient

    四、扩展

    除了seaweedfs,还有一些其他的文件存储,比如:bfs(支撑Bilibili的小文件存储系统),github地址 bfs。感兴趣的读者可以去学习一下。
    还有比如阿里的https://github.com/alibaba/tfs,百度的https://github.com/baidu/bfs,fastdfs:https://github.com/happyfish100/fastdfs等。

    展开全文
  • 服务器搭建个人网站(阿里云服务器

    万次阅读 多人点赞 2018-01-29 16:47:32
    服务器搭建个人网站 一丶购买服务器 这里我选的是阿里云服务器,进入阿里云官网https://www.aliyun.com 阿里云提供了几种服务器,云服务器ESC、轻量应用服务器,ESC更好一点...首先你要知道怎么把你本机的文件放到你的
  • 这里在虚拟机上搭建的,真正服务器搭建同理,废话少说,开始正文 首先准备一台母机(192.168.150.10),此母机上不搭建东西,只是为了后续虚拟机的克隆,我的是centos7.x 准备基本环境 检查c/c++ 环境 yum -y install gcc ...
  • nginx+keepalived实现主备服务器高可用 一、什么是负载均衡高可用?  nginx作为负载均衡服务器,所有请求都到了nginx,可见nginx处于非常重要的位置,如果nginx服务器宕机将会导致后端web服务将无法提供,后果...
  • 搭建三台高可用hadoop服务器集群

    万次阅读 2018-08-09 11:44:34
    -- 开启RM高可用 --> <name>yarn.resourcemanager.ha.enabled <value>true <!-- 指定RM的cluster id --> <name>yarn.resourcemanager.cluster-id <value>yrc <!-- 指定RM的名字 -...
  • FastDFS文件服务器

    千次阅读 2019-01-25 15:26:45
    文件服务器
  • Nginx实现高可用

    万次阅读 2018-11-14 10:53:49
    nginx是一款性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定...
  • Java架构师系列课程是针对有志向架构师发展的广大学员而设置,不管你是工作一到三年,还是三到五年,本课程都会对你产生巨大的提升,让你的薪资大幅翻倍,走向BAT架构师的伟大梦想。
  • Linux下搭建FastDFS文件服务器

    万次阅读 2018-10-24 17:05:01
     FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文 件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册...
  • 文件服务器存储解决方案探索

    千次阅读 2019-02-25 21:49:54
    文件服务器(file servers)是一种器件,它的功能就是向服务器提供文件。 它加强了存储器的功能,简化了网络数据的管理。 它一则改善了系统的性能,提高了数据的可用性,二则减少了管理的复杂程度,降低了运营费用。...
  • 这几天在Eclipse上做java web项目,配置好了Tomcat后,测试编写的jsp文件时出现了404问题,还提示源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示 解决过程: 之后上网找了一下解决方法,说是...
  • Nginx 高可用方案

    千次阅读 2018-07-30 11:43:04
    负载均衡策略 方案一:使用硬件负载均衡策略的实现,如使用F5,Array等负载均衡器; 方案二:使用软件进行负载均衡 使用阿里云服务器均衡负载SLB; 使用nginx+keepalived;... 下载所需要的依赖库文件:yum...
  • MySQL高可用集群搭建 ----- MHA

    千次阅读 2019-09-15 15:05:07
    一、何为高可用高可用性说白了就是应用可以 持续不间断 的 提供...高可用:指后端服务器有状态,一般来说是一主一备的结构,它们之间是一个工作而另一个不工作,在主服务器出故障后,备服务器去接管服务,从而达...
  • 3台服务器Redis高可用哨兵模式

    千次阅读 2017-05-07 01:47:39
    3台服务器Redis高可用哨兵模式@(学习)[redis, 高可用]3台服务器Redis高可用哨兵模式 介绍 redis程序安装 哨兵模式配置 1 主redis配置 2 从redis配置 3 启动redis和哨兵 总结
  • 搭建一个自己的文件上传服务器

    万次阅读 2019-06-12 13:46:32
    由于看到了商城的项目,本来无心搭建那个文件上传服务器的,可是看到了人家自己使用了FastDFS服务器,我想自己怎么不能搭建呢,干就是了。 先介绍下为何使用这个东西: FastDFS是一个开源的轻量级分布式文件系统,...
  • 高可用NAS集群技术

    万次阅读 2017-12-13 12:25:53
    高可用NAS集群技术 目录 高可用NAS集群技术 一、前言 二、集群NAS的介绍 (一)什么是集群NAS (二)集群NAS的主流架构 (三)集群NAS的分类 三、集群存储高可用技术 (一)什么是集群高可用 (二)常用...
  • SQLServer 2012 高可用之镜像搭建实录

    千次阅读 2019-03-01 09:27:44
    SqlServer 2012高可用搭建过程 如题所述,记录下我的搭建“心路过程”,项目需要数据库实现高可用,手头只有sql server 2012 Express的安装包,实验的资源缺乏。起初对SqlServer高可用还没有实际做过,百度了些资料...
  • 可用可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。 可靠性 可靠性一般指产品可靠性,是元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。 光看定义比较...
  • 阿里云 防火墙导致 端口号没有开 [2019-02-12 09:55:15,337] 90 [INFO ] -- [FtpServerAshxForm]...[2019-02-12 09:55:17,387] 116 [INFO ] -- System.Net.WebException: 远程服务器返回错误: 227 Entering...
  • windows server 2012 高可用群集搭建实录

    万次阅读 多人点赞 2019-03-31 18:51:23
    这个文章作为我搭建的详细步骤一个记录,供日后回过来查看,网上对windows server 2012 高可用群集搭建的资料还是很多的! 只是有一个地方没有找到想要的答案:群集中的共享存储如果不可用了呢,按理也是一个单点...
  • Mycat高级进阶---高可用与集群

    万次阅读 2017-03-22 19:39:54
    MySQL高可用的几种方案首先我们看看MySQL高可用的几种方案: 对于数据实时性要求不是特别严格的应用,只需要通过廉价的pc server 来扩展Slave 的数量,将读压力分散到多台Slave 的机器上面,即可通过分散单台...
  • 可用高性能高并发量解决方案汇总整理

    千次阅读 多人点赞 2018-10-30 14:21:50
    网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很的要求,已经不是原来...
  • 原因没有创建文件夹的路径 try { Connect(path); reqFTP.Method = WRMethods; response =(FtpWebResponse) reqFTP.GetResponse(); if(respo...
  • HA高可用

    万次阅读 2018-09-25 20:57:46
    什么事应用程序的高可用 高可用性(high availability)通常用来描述一个系统经过专门的设计,从而减少停工的时间,而保持其服务的高度可用高可用程序的类型 主从方式(冷备) 两个相同的应用程序,一个对外提供...
  • 高可用集群

    万次阅读 多人点赞 2016-09-23 20:49:13
    本文将详细介绍:高可用集群、高可用集群衡量标准、高可用集群实现原理、高可用集群工作模型、高可用集群构架、高可用集群软件、共享存储

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 681,933
精华内容 272,773
关键字:

文件服务器高可用