zoukankan      html  css  js  c++  java
  • 用Linux建立多应用系统备份服务器

    用Linux建立多应用系统备份服务器
    本文旨在结合自己的工作实际,利用LinuxFTP服务器建立了一个多系统备份服务器异地备份策略.
    1 建立LinuxFTP服务器
    使用了Red Hat Enterprise Linux 5 Update1, 以下所有实例中的Linux命令均在该操作系统下完成,为了增强数据备份的安全性、服务器网络连接的高可用性及吞吐量,在服务器中可以使用Raid技术增强数据的安全性和完整性,使用双网卡绑定技术来提高网络连接需要的性能。Raid 的具体实现可以根据用户各自的硬件环境采用Raid卡或着Linux提供的软件Raid实现,下面是Linux下实现软件Raid的具体实例。
    1.1 Linux创建软Raid的配置过程以Raids为例,在Linux中使用3块廉价IDE硬盘组建一个Raid5设备,从而实现数据的安全性。组成Raid5设备的3块IDE硬盘在Linux中的设备文件名分别为:/dev/hdb (第2个IDE硬盘)、 /dev/hdc (第3个IDE硬盘)、/dev/hdd(第4个IDE硬盘)。(1)创建新磁盘分区用root用户执行命令#fdisk /dev/hdb, 完成对第2 个IDE 硬盘的格式化。
    在Command(m for help) :提示下输入n,即
    创建新的磁盘分区。
    在Command action
    e   extended
    p   primary partition  (1-4) : 提示下输入p, 即创建主分区。
    在Partition number  (1-4) :  提示下输入1 , 即分区号。
    在First cylinder  (1-522, default  1) :   提示下按回车,即指定起始柱面(注意:括号中尾柱面数字取决于硬盘的具体型号)。
    在Last cylinder or +size or +sizeM or +sizeK  (1-522, default 522) : 提示下按回车, 即指定尾柱面。在Command (m for help) :  提示下输入p , 即查看分区状态,如果看到/dev/sdb1 等信息则说明分区成功。
    在Command(m for help) :提示下输入t,即转换分区类型。
    在Hex code (type L list codes) : 提示下输入L,即显示分区编码列表。
    在Hex code  (type L list codes) : 提示下输入fd,即LinuxRaid分区编码。
    在Command(m for help) :提示下输入w ,即保存退出。
    重复以上步逐,在其余2块硬盘上创建Linux-Raid分区。完成后需要重新启动Linux主机,以使设置生效。
    (2)创建Raid设备
    执行命令# mdadm -Cv /dev/md0 -l5 -n3 -c128 /dev/hd[b,c,d]1命令中各参数的作用如下:“-C” :创建一个新的阵列; “/dev/md0” :表示阵列设备名称; “-l5”表示设置阵列模式,可以选择0、  1、 4、  5、 6, 它们分别对应于Raid0、 Raid1、 Raid4、Raid5、Raid6,这里设为Raid5模式; “-n3”指设置阵列中活动设备的数目, 该数目加上备用设备的数目应等于阵列中的总设备数; “-c128”指设置块的
    尺寸为128 kb, 缺省为64 kb ; “/dev/hd[b, c,d,]1” 指当前阵列中包含的所有设备标识符,也可以分开来写,中间用空格分开。当创建一个新阵列或者对阵列重构时,设备需要进行同步操作。这一过程需要一定时间,可以通过查看/proc/mdstat文件, 来显示阵列的当前状态以
    及同步进度、所需时间等信息。
    # more /proc/mdstat
    Personalities : [raid5]
    md0 : active raid5 hdd1[2] hdc1[1] hdb1[0]
    75469842 blocks level 5, 128 k chunk, algorithm  2
    [3/2] [UU_]
     [>....................] recovery = 4.3  % (1622601/
    37734912) finish=1.0min speed=15146K/sec
    unused devices:
    当新建或重构完成后,再次查看/proc/mdstat
    文件:
    # more /proc/mdstat
    Personalities : [raid5]
    md0 : active raid5 hdd1[2] hdc1[1] hdb1[0]
    75469842 blocks level 5, 128k chunk, algorithm 2 [3/
    3] [UUU]
    unused devices:
    由此可以很清楚地看出当前阵列的状态,各部
    分所代表的意思如下: “[3/3]”中的第1位数表示阵
    列所包含的设备数,第2位数表示活动的设备数,如
    果有一个设备损坏,则第2位数将减1; “[UUU]”标
    记当前阵列可以正常使用的设备情况,现假设/dev/
    hdb1出现故障,则该标记将变成 [_UU],这时的阵
    列以降级模式运行,即该阵列仍然可用,但是不再
    具有任何冗余; “sdd1[2]” 指阵列所包含的设备数为
    n,若方括号内的数值小于 n,则表示该设备为活动
    设备,若数值大于等于n,则该设备为备份设备,当
    一个设备出现故障的时候,相应设备的方括号后将
    被标以(F)。
    3)配置Raid设备
    接下来为mdadm生成配置文件, mdadm的缺省
    配置文件为/etc/mdadm.conf,为了方便阵列的日常
    管理而设置的,为了减少日后管理中不必要的麻
    烦,还是应该坚持把这一步做完。
    在mdadm.conf文件中要包含两种类型的行:一
    种是以DEVICE 开头的行,它指明在阵列中的设备
    列表;另一种是以ARRAY 开头的行,它详细地说
    明了阵列的名称、模式、阵列中活动设备的数目以
    及设备的UUID 号。
    (4)生成文件系统
    创建文件系统并挂接(mount)使用。Raid5已
    经启动并处于运行状态,现在要做的就是在其上创
    建一个文件系统,使用mkfs命令,文件系统类型为
    ext3。命令如下:
    # mkfs -t ext3 /dev/md0 //以ext3文件系统格式
    化Raid5设备
    当新的文件系统生成之后,就可以将/dev/md0
    挂接到指定的目录了。命令如下:
    # mount /dev/md0 /ftp //挂接/dev/md0设备到/
    ftp目录
    为了让系统在启动时自动将/dev/md0挂接到/
    ftp,还需要修改/etc/fstab文件,添加如下内容:
    /dev/md0 /ftp ext3 defaults 0  0
    这样在系统重新启动后, Raid5设备/dev/md0将
    被自动挂接到/ftp目录中,我们对目录/ftp的操作
    实际就是对Raid5设备/dev/md0的操作。
    通过以上步骤,完成了在Linux 系统下创建软
    件Raid的配置过程,再将使用Linux提供的vsftpd
    服务器,创建一个具有不同功能权限的FTP 服务器
    用户,并在/ftp目录中建立备份系统目录结构,以
    实现备份服务器应具备的全部功能。
    1.2  FTP服务器及备份目录结构的设置
    设定3 个不同的用户权限:upload 用户,用于
    上传数据; download用户,用于下载数据;admin用
    户,作为管理员。为了有效地保护系统安全,这些
    用户都不能登录系统,并且用FTP 连接时锁定在自
    己的根目录中不能进入系统文件夹。
    创建FTP 用户的命令如下:
    (1)  vi logins.txt
    1>upload
    2>upload  (注:本行的“upload”为“upload”
    用户的密码)
    3>download
    4>download
    5>admin
    6>admin
    此文本文件的格式是单数行为用户名,偶数行
    为密码。
    (2) db_load -T -t hash -f logins.txt /etc/vsftpd_log-
    in.db
    (3) chmod 600 /etc/vsftpd_login.db
    (4) useradd -d /ftp virtual ; chmod 700 /ftp
    (5)修改FTP 配置文件:
    在/etc/vsftpd.conf文件中插入下面的配置语句
    Anonymous_enable=NO(禁止匿名用户)
    guest_enable=YES(启用虚拟用户)
    write_enable=NO
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO
    chroot_local_user=YES
    guest_username=virtual (将虚拟用户映射为本
    地virtual用户)
    pam_service_name=vsftpd.pam(指定PAM配置
    文件为在/etc/pam.d/下的vsftpd)
    user_config_dir=/etc/vsftpd_user_conf (指定不
    同虚拟用户配置文件的存放路径)
    保存退出
    (6)  cp /usr/share/doc/vsftpd-2.0.1/EXAMPLE/
    VIRTUAL_USRES/vsftpd.pam /etc/pam.d/
    (7) mkdir /etc/vsftpd_user_conf
    (8)开放不同用户的不同权限 
    echo "anon_world_readable_only=NO">/etc/
    vsftpd_user_conf/download (开放 download用户的
    下载权限—只能下载;注意这个地方不要写成YES,
    否则将不能列出文件和目录)
    cp /etc/vsftpd_user_conf/download /etc/
    vsftpd_user_conf/upload
    vi /etc/vsftpd_user_conf/upload, 添加下列行
    write_enable=YES  (增加写权限)
    anon_upload_enable=YES(增加上传权限)
    anon_world_readable_only=YES (禁止列出文件
    和目录)
    anno_other_write_enable=YES (增加用户的删
    除/ 重命名的权限)
    cp /etc/vsftpd_user_conf/upload /etc/vsftpd_user_
    conf/admin
    修改一行:
    anon_world_readable_only=NO
    重新启动vsftpd服务器,就可以使用以上创建
    的3 个功能不同的用户来实现其各自不同的功能。
    在/ftp目录中建立备份系统目录树结构。 将在
    /ftp 目录中以车站电报码为各车站数据备份一级目
    录,在一级目录下再依次建立相关系统的备份目
    录,这样室的数据将被异地备份到vsftpd服务器
    中的相关备份目录中,目录结构图如图1。
     
    2 部署各应用系统的备份策略
     
    本文通过使用Linux系统提供的FTP服务器,结
    合Linux系统提供的软Raid技术,部署了异地灾难数据备份应用,对一线应用系统的
    实时数据进行异地备份,有力的保证了生产系
    统计算机在完全崩溃后实时数据的有效恢复。
     

    本文出自 “李晨光原创技术博客” 博客,转载请与作者联系!

  • 相关阅读:
    118/119. Pascal's Triangle/II
    160. Intersection of Two Linked Lists
    168. Excel Sheet Column Title
    167. Two Sum II
    172. Factorial Trailing Zeroes
    169. Majority Element
    189. Rotate Array
    202. Happy Number
    204. Count Primes
    MVC之Model元数据
  • 原文地址:https://www.cnblogs.com/chenguang/p/3742529.html
Copyright © 2011-2022 走看看