精华内容
下载资源
问答
  • “文件大小”和“占用空间有什么不同? 在使用电脑时,文件属性下有“文件大小”和“占用空间”这两个内容,它们有什么异同。 -----------------------------------------------------------------------------...
  • 还在各种付费的在线图片空间?每个月几百MB的流量上限?300MB空间限制? 我这免费的25GB不限流量支持外链的,你要不要(不要...起来的感觉和Windows资源管理器几乎没什么差别,所以非常容易上手。 基本使...

    还在用各种付费的在线图片空间?每个月几百MB的流量上限?300MB空间限制?

    我这有免费的25GB不限流量支持外链的,你要不要谄笑(不要就算了哈)

    Pic16
    今天的主角是:

    Pic17

    点击图片可以直接进入微笑

    用SkyDrive可以很方便的管理成千上万张照片——只要你的带宽足够,并且能把每张jpg控制在50MB一下。用起来的感觉和Windows资源管理器几乎没什么差别,所以非常容易上手。

    Pic15

    基本使用篇:
    其实我一直是在Google中输入Skydrive然后点手气不错直接进来的,不过,还是截个图吧
    Pic1

    如果没有登录Live,会提示你登陆,有个小问题是不能保存密码(?)
    Pic2
    对,我每次都从这里进~点左边的那个, 至于Office Web App,以后会讲到
    Pic3

    主界面一目了然,我现在有三个相册,我会通过新建一个相册来说明用法。

    点击 Create album就能进入下一个画面
    Pic4

    在这里可以设置权限,写相册名称,你也可以自定义(Add specific people)
    Pic5

    具体的每一层权限有两种,只能看和最高权限,为了避免纠纷(具体什么纠纷我就不说了),一定要想好了~

    Pic6

    创建了相册之后会自动跳转到下面这个页面,在右上角(红框里)可以选择上传的图片大小,后面标注的值(1600px & 600px均为长边的长度),如果是Original,你在相册里就会看到全尺寸的图片,当然传照片的时间也够你等上好一阵子。

    每个文件最大50MB,超过了会有提示
    Pic7
    上传只需要Silverlight,不需要其他的插件,Silverlight的安装只需几秒,是一个和Flash平级的浏览器插件,不赘述了,要不就跑题了尴尬
    Pic8
    拖动进去之后它会自动上传,速度在联通4M ADSL寝室的环境下还算可以,建议下一版本加入速度的显示。

    还有,那个文件总大小不用理,他总是在不停的变。
    Pic9

    在上传之后就这样子了,你可以点击任何一张照片进入查看
    Pic10

    关于下载图片:

    在非所有者的前提下,只能用PhotoGallary来下载,不知道是不是真的是这样。
    Pic11
    但是,在所有者想下载的时候,可以选择“打包zip下载所有图片”
    Pic12
    还有个很有趣很出彩的功能:Pic13

    点了之后会以幻灯片的方式播放,如果再开启全屏,就很无敌了(如下图)
    Pic14

    转载于:https://www.cnblogs.com/ShadowsX/archive/2010/10/01/1840730.html

    展开全文
  • 对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。 追溯到在 Apple II 上...
  • 第4章 使用SQL*Plus和Oracle企业管理器 73 4.1 启动SQL*Plus会话 73 4.1.1 设置环境 73 4.1.2 从命令行启动SQL*Plus会话 74 4.1.3 CONNECT命令进行连接 75 4.1.4 /NOLOG的无连接SQL*Plus会话 76 ...
  • 8 c6 p0 N( J1 o域控制就是存储活动目录的地方,一个域可以一个或几个域控制。在域中,各域控制相互复制活动目录的改变,在目录林中,各域控制相互之间也把信息自动复制给对方。 $ j D* X9 F, S$ @ X1 Q+ ...
  • 人事管理系统

    2016-01-14 21:29:29
    3、人事档案中的头像照片,保存在文件夹中,减少data数据库的存储空间。 4、导入导出,备份还原,权限分组控制,窗体中某些功能限制等 5、组合查询,且可导出查询的任意结果,以及打印任意查询结果;报表也可以一个...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    对实际编程来说,理解您的内存管理器的能力与局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。 追溯到在 Apple II 上进行...
  • 手机 pdf 阅读

    2009-02-12 23:00:29
    阅读时的*、#键的功能补重新定义,目前*键是旋转屏幕,(该功能目前仅作用于TXT上,其它格式此功能稍后实现),#键打开文件管理器,返回键关闭当前阅读回到欢迎界面 修正阅读时回翻引起的“java.lang.RuntimeException...
  • 客户管理方面的知识,CRM的实施目标,实施阶段...人把CRM目前的状况“像雾像雨又像风”这样一句歌词来比喻。前景看不清,所以“像雾”;弄清概念后觉得有用,所以“像雨”;担心会不会又在赶时髦,所以“又像风”。
  • 3.7 企业管理器的新特性 124 3.7.1 Availability标签页 125 3.7.2 Server标签页 125 3.7.3 新的Related Links 126 3.7.4 LogMiner支持 127 3.7.5 数据库诊断和调整包 128 3.8 Oracle Scheduler的新特性 129 ...
  • 5.3.1 手工段空间管理(Manual Segment Space Management) 232 5.3.2 自动段空间管理(Auto Segment Space Management) 233 5.3.3 延迟段空间创建(Deferred Segment Creation) 245 5.4 Oracle的存储信息 248 ...
  • linux 系统管理员.pdf 书籍

    热门讨论 2012-02-13 11:02:45
    第3章 磁盘和其他存储媒体的使用 201 3.1 两类设备 201 3.2 硬盘 202 3.3 软盘 204 3.4 CD-ROM 204 3.5 磁带 205 3.6 格式化 206 3.7 分区 207 3.7.1 主引导记录、引导扇区和分区表 207 3.7.2 扩展和逻辑分区 208 ...
  • 第11章 Linux磁盘存储管理 287 11.1 磁盘管理的基本概念 288 11.1.1 磁盘设备在Linux下的表示方法 288 11.1.2 设备的挂载与使用 289 11.1.3 磁盘分区的划分标准 290 11.2 利用fdisk工具划分磁盘分区 291 11.2.1 ...
  • 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 ...
  • 其实就是磁盘上的存储空间(一段数据流) 存储方式:二进制存储或者是文本存储(字节存储和2进制大有不同,2进制更紧凑) SHELL脚本是纯文本的,不能单独执行,的就是bash解释(#!/bin/bash)无论是可执行文件...

    进程管理:

    什么是文件?
    其实就是磁盘上的存储空间(一段数据流)

    存储方式有:
    二进制存储或者是文本存储(字节存储和2进制大有不同,2进制更紧凑)

    6、进程知识(参合内核调度知识)

    SHELL脚本
    是纯文本的,不能单独执行,用的就是bash解释器(#!/bin/bash)
    无论是可执行文件(像ls,cat,这些二进制执行文件)和shell脚本(纯文本,由bash解释器去执行),都是最终成为一个数据流的,交于CPU去处理的。
    shell脚本是交给/bin/bash运行,而ls,cat这些可执行文件,也是有依赖公共库文件的
    6、进程知识(参合内核调度知识)

    程序只要读数据和输出数据,其实都是I/O数据流的
    进程是程序的实例,各个进程不会互相干扰和识别的

    6、进程知识(参合内核调度知识)

    内核的作用:
    内核是资源调度工具,上图的箭头,其实都是由内核去管理的,分配管理各个进程和CPU处理机制相关的东西。
    Linux本身就是抢占式多任务的(根据时钟驱动去抢占)
    程序和内核申请资源的话,才能由内核调度给CPU去运行

    CPU的计算能力:
    是靠时间流逝来进行的
    内存的计算能力呢?是空间,大多为分页内存空间,也叫作内存页面(page frame: 页框),而且这个页框是固定大小的
    运行程序不是加载程序所有,可能就是加载了一部分,使用固定大小的页框去存储
    这个跟磁盘上的磁盘块其实也是差不多的

    进程在使用内存空间的时候的机制?
    进程不知道内存中是不连续的,而内核是知道的,所以内核都是虚拟了一个空间给进程,让进程以为自己在内存的空间都是连续的,而且每一个进程都以为自己有一个固定大小的内存使用,如果是32位系统,进程都会以为他有4G的内存可用

    6、进程知识(参合内核调度知识)

    进程以为自己在内存中的页框都是连续的

    Linux的Swap分区就是Window的虚拟内存(Window的这样说法是不太合适的)
    因为Swap分区它只是存储一些最近最少使用的,腾出内存空间给新的进程使用,而硬盘保存的只是临时存储的,需要交给CPU再次处理的话,还是需要交还给内存再传送的。

    内存映射(产生:共享内存空间)如下图:

    6、进程知识(参合内核调度知识)

    Linux中,所有进程的父进程(守护进程)都是init,而Centos7.0+之
    后父进程(守护进程)都是systemd
    init -->
    父进程终止子进程,也需要跟内核去申请去执行的,所以每一个进程都有一定的记录信息,让父进程或者是我们用户本身去找到这个进程,通常我们就是用的进程ID去管理这个进程
    fork()

    C语言的追踪进程的方式:双向循环链表

    6、进程知识(参合内核调度知识)

    所谓查看进程数据,就是通过数据结构的标示去访问的
    不然我们去访问/proc的话,根本是看不懂的,这就需要进程管理工具帮我们去查看并显示成我们能够接受清晰的数据
    父进程调度子进程,相当于领导分派任务,你给我返回一个结果就行了,返回结果之后,父进程在继续往下执行

    进程之间可以共享共享库,不过是不能共享数据的
    比如两个进程不能同时打开一个文件

    线程是一个进程的多个实例
    6、进程知识(参合内核调度知识)

    CPU是有保护机制的,之前说的环0,1,2,3(普通的在环3,内核的在环0;23没用先)
    CPU时钟驱动:
    是根据以下去占用CPU去让CPU执行的
    进程优先级:
    进程调度:进程调度是内核的核心功能之一

    公平:
    结果公平:
    起点公平:

    6、进程知识(参合内核调度知识)

    每一个进程刚创建的时候优先级是一样的,当某一个进程占据CPU时间过长,就要降低优先级,而一些没有用的就需要加大优先级,而这个也是有内核去完成的

    如下:
    就是线性地址空间组织结构图
    栈放的是本地变量
    堆一般放文件中的数据啊,等等
    6、进程知识(参合内核调度知识)

    上图可以看到
    4GB的内存,其中1GB给了内核,3G给了其他

    Linux一共有140个队列,也就是有140个优先级
    0-99实施优先级,是属于内核管理的优先级。越大,优先级越高,所以99的优先级是最高的
    而100-140属于用户可以设置的,也就是所谓的Nice值,对应着就是-19到+20,值越小优先级越高

    有了这些概念,就可以学习一些进程管理的命令了。

    转载于:https://blog.51cto.com/425319153/2092951

    展开全文
  • 垃圾回收机制

    2020-12-14 08:51:51
    它是一种动态存储管理技术,自动释放不再被程序引用的对象所占用的内存空间 二.为什么垃圾回收机制 程序的运行过程中会申请大量的内存空间 对于一些无用的空间如果不及时清理的话会导致内存溢出(不够),程序...

    一.什么是垃圾回收机制

    • 垃圾回收机制(简称GC), python解释器自带的一种机制

    • 它是一种动态存储管理技术,自动释放不再被程序引用的对象所占用的内存空间

    二.为什么要有垃圾回收机制

    • 程序的运行过程中会申请大量的内存空间
    • 对于一些无用的空间如果不及时清理的话会导致内存溢出(不够用),程序就会崩溃
    • 管理内存是非常复杂的事情,垃圾回收机制就把程序员从复杂的内存管理中解放出啦

    三.垃圾回收机制的原理

    1.引用计数

    引用计数就是变量名与变量值的关联次数, 以此来跟踪和回收垃圾

    • 直接引用
    🌴通过变量名直接引用
    x = 18  #18被引用了一次,计数为1
    y = x   #18被引用加1次,计数为2
    z = y   #18被引用加1次,计数为3
    print(id(x))  #140725488808736
    print(id(y))  #140725488808736
    print(id(z))  #140725488808736
    
    • 间接引用
    🌴容器对其的引用都是间接
    x = 18                 #18被引用一次,计数为1
    li = [1,2,x]           #通过列表引用,计数加1,为2
    dic = {'age': x}       #通过字典引用, 计数加1,为3
    print(id(x))           #140725486514976
    print(id(li[2]))       #140725486514976 列表引用,计数4
    print(id(dic['age']))  #140725486514976 字典引用,计数5
    

    2.栈区 / 堆区

    • 栈区 : 存放的是变量名与变量值的内存地址映射关系
    • 堆区 : 存放的是值真正的位置

    在这里插入图片描述

    3.总结

    • 直接引用指的是从栈区出发直接引用到的内存地址
    • 间接引用指的是从栈区出发引用到堆区后,再通过进一步引用才能到达的内存地址

    四.标记清除

    1.循环引用问题(也叫交叉引用)

    🌴我们先定义列表
    l1=[0]  # 列表1被引用一次,列表1的引用计数变为1   
    l2=[1]  # 列表2被引用一次,列表2的引用计数变为1   
    
    🌴将列表加入另一个列表
    l1.append(l2)  # 把列表2追加到l1中作为第二个元素,列表2的引用计数变为2
    l2.append(l1)  # 把列表1追加到l2中作为第二个元素,列表1的引用计数变为2
    
    🌴解除比变量名"l1""l2"与值的对应关系
    del l1
    del l2
    

    3.循环引用导致的结果

    • 值不再被任何名字关联,但是值的引用计数并不会为0
    • 应该被回收但又不能被回收

    4.解决方法 : 清除-标记

    • 容器对象的的引用都有可能产生循环引用, 而清除-标记就是为解决这个问题的
    • 当应用程序可用空间被耗尽时, 清除-标记会停止整个程序, 然后先标记, 再清除
    🌴标记
    但凡是可以从栈区出发,找到对应堆区内容的(直接或间接引用)就标记存活,非存活则清除
    具体点:标记的过程其实就是,遍历所有的"GC Roots"对象(栈区中的所有内容或者线程都可以作为"GC Roots"对象)
    然后将所有"GC Roots"的对象可以直接或间接访问到的对象标记为存活的对象,其余的均为非存活对象,应该被清除
    
    🌴清除
    遍历堆中的对象,将没有标记存活的对象都清理掉
    

    五.分代回收

    1.效率问题

    • 基于引用计数的回收机制,每次回收内存,都需要把所有对象的引用计数都遍历一遍
    • 这是非常消耗时间的,于是引入了分代回收来提高回收效率
    • 分代回收采用的是用**“空间换时间”**的策略。

    2.解决方法 : 分代回收

    • 分代
    🌴分代指的是根据变量的存活时间来划分他们的等级
    🌴一个变量经常被引用,等级(权重)就会提高,权重达到设定值就会进入下一个等级
    🌴当经过多次扫描都没有被回收,"GC机制"就会认为该变量是常量
    🌴于是对其的扫描频率会降低
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTcK6V8C-1607907052083)(H:\Python正课学习笔记\day01\分代回收等级提升.png)]

    • 回收
    🌴当计数降低,就容易被回收
    🌴分代回收可以起到提升效率的效果,但也存在一定的缺点:
        🐏比如一个变量刚从低等级转入高等级,它就被解除了绑定关系
        🐏它应该被回收,但高等级扫描频率低于低等级
        🐏那么这个已被解除绑定关系的变量无法及时得到清理
    
    • 总结
    🌴垃圾回收机制是在清理垃圾和释放内存的前提下
    🌴允许一些垃圾不被释放为代价(就是等级权重高点的垃圾不会及时被清理)
    🌴以此换取引用计数扫描频率的降低,从而提升其性能
    🌴这是一种以空间换时间的解决方案
    
    展开全文
  • [Oracle.11g权威指南(第2版)].谷长勇.扫描版.pdf

    千次下载 热门讨论 2013-06-23 21:16:09
    12.3.3 选择段空间管理方式建立表空间 293 12.3.4 创建非标准块表空间 294 12.3.5 建立大文件表空间 294 12.4 维护表空间与数据文件 295 12.4.1 改变表空间的读写状态 295 12.4.2 改变表空间的名称 296 12.4.3 设置...
  •  21.2 恢复管理器(RMAN)  21.2.1 通道  21.2.2 备份集的维护  21.2.3 RMAN资料库  21.2.4 RMAN的使用  21.3 数据库备份 与疑难解析  21.4 恢复目录管理 与疑难解析  第22章 失而复得——数据库恢复...
  • 一.什么是mfsmaster的高...MFS文件系统中,master负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复。多节点拷贝,是MFS的关键点,显然极大可能存在单点故障。虽然Metalogger,但是不能实现...

    一.什么是mfsmaster的高可用

    我们知道mfsmaster是调度器,是mfs最核心的地方,如果mfsmaster挂了,整个mfs架构会挂掉,对此我们要对mfsmaster进行高可用冗余操作。

    MFS文件系统中,master负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复。多节点拷贝,是MFS的关键点,显然有极大可能存在单点故障。虽然有Metalogger,但是不能实现故障实时切换,服务要停止之后在Metalogger恢复元数据以及changelog_ml.*.mfs(服务器的变化日志文件),再次重新指定新的mfsmaster节点。

    可以采用keepalived实现,但是要注意的是不仅仅是VIP的漂移,mfsmaster的工作目录都要进行漂移,这就涉及存储的共享,在这里采用pacemaker+corosync来实现故障切换)

    构建思路:利用pacemaker构建高可用平台,利用iscis做共享存储,mfschunkserver做存储设备。
    有人可能要问为什么不用keepalived,我想说的是就是keepalived是可以完全做的,但是keepalived不具备对服务的健康检查;整个corosync验证都是脚本编写的,再通过vrrp_script模块进行调用,利用pacemaker比较方便。

    用途:
    解决mfs master的单点问题,同样可以作为其他需要高可用环境的标准配置方法

    二.部署mfsmaster的高可用

    实验环境:

    主机 服务
    server1 mfsmaster,pacemaker,iscsi客户端
    server2 mfschunkserever1,iscsi服务端
    server3 mfschunkserever2
    server4 mfsmaster-backup,pacemaker,iscsi客户端
    物理机 client

    本来iscsi服务端是要在另外一台虚拟机上进行部署的,这里为了方便,直接将server2作为iscsi的服务端

    前提:

    停掉之前mfs分布式文件系统启动的服务,并卸载客户端挂载的目录。为后续的pcs集群做准备

    [root@server1 ~]# systemctl stop moosefs-master   #server1端(moosefs-cgiserv服务可以不用关闭,因为moosefs-cgisev服务只是用来提供web界面的
    [root@server2 ~]# systemctl stop moosefs-chunkserver
    [root@server3 ~]# systemctl stop moosefs-chunkserver
    
    物理机:
    [root@foundation27 ~]# umount /mnt/mfsmeta
    [root@foundation27 ~]# umount /mnt/mfs
    

    实验步骤如下所示:

    第一步:配置server4作为mfsmaster-backup端

    首先要搭建基础的mfs分布式存储架构,本篇不做阐述。可以查看上篇博文。这里只需要在上篇博文的基础上添加server4作为mfsmaster-backup端即可。

    server1:将server4需要的包传送给它

    [root@server1 ~]# scp moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm  server4:
    

    在这里插入图片描述

    server4:

    [root@server4 ~]# yum install  -y   moosefs-master-3.0.103-1.rhsystemd.x86_64.rpm   #安装软件
    [root@server4 ~]# vim /etc/hosts   #编辑本地解析文件
    172.25.27.1    server1  mfsmaster
    

    在这里插入图片描述

    在这里插入图片描述

    [root@server4 ~]# vim /usr/lib/systemd/system/moosefs-master.service   #修改moosefs-master服务的启动脚本
    8 ExecStart=/usr/sbin/mfsmaster -a   #修改之后的内容
    [root@server4 ~]# systemctl daemon-reload
    
    [root@server4 ~]# systemctl start moosefs-master   #检查脚本是否有错误,即查看moosefs-master服务是否能够正常启动
    [root@server4 ~]# systemctl stop moosefs-master   #关闭moosefs-master服务,以便后续实验的开展
    

    在这里插入图片描述

    在这里插入图片描述

    第二步:配置 iscsi实现共享存储

    server2

    添加一块新的磁盘,用于共享

    在这里插入图片描述

    看到新添加的磁盘为/dev/vda

    [root@server2 ~]# fdisk -l   
    

    在这里插入图片描述

    对iscsi进行配置

    [root@server2 ~]# yum install targetcli -y
    

    在这里插入图片描述

    [root@server2 ~]# systemctl start target
    [root@server2 ~]# targetcli 
    targetcli shell version 2.1.fb41
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.
     
    /> ls
    o- / .............................................................. [...]
      o- backstores ................................................... [...]
      | o- block ....................................... [Storage Objects: 0]
      | o- fileio ...................................... [Storage Objects: 0]
      | o- pscsi ....................................... [Storage Objects: 0]
      | o- ramdisk ..................................... [Storage Objects: 0]
      o- iscsi ................................................. [Targets: 0]
      o- loopback .............................................. [Targets: 0]
    /> backstores/block create my_disk1 /dev/vda   
    /> iscsi/ create iqn.2019-08.com.example:server2   
    /> iscsi/iqn.2019-08.com.example:server2/tpg1/acls create iqn.2019-08.com.example:client   
    /> iscsi/iqn.2019-04.com.example:server2/tpg1/luns create /backstores/block/my_disk1 
    

    在这里插入图片描述
    在这里插入图片描述

    配置server1(iscsi客户端):

    [root@server1 ~]# yum install iscsi-* -y   #其实就一个包
    [root@server1 ~]# vim /etc/iscsi/initiatorname.iscsi 
    InitiatorName=iqn.2019-08.com.example:client
    [root@server1 ~]# iscsiadm -m discovery -t st -p 172.25.27.2
    [root@server1 ~]# iscsiadm -m node -l   #或者命令"iscsiadm -m node -T qn.2019-08.com.example:server2 -p 172.25.27.2 -l"
    

    在这里插入图片描述

    在这里插入图片描述
    可以查看到多了一块磁盘

    [root@server1 ~]# fdisk -l 
    

    在这里插入图片描述

    对服务端共享出来的磁盘(这里是/dev/sdb)进行操作(分区,格式化,挂载)

    [root@server1 ~]# fdisk /dev/sdb   #给磁盘/dev/sda进行分区,当然也可以不分区
    

    在这里插入图片描述

    [root@server1 ~]# mkfs.xfs /dev/sdb1   #格式化磁盘分区
    [root@server1 ~]# mount /dev/sdb1 /mnt/   #下面对mnt目录以及其中的内容进行的修改相当于对/dev/sdb1的修改
    [root@server1 ~]# cp -p /var/lib/mfs/* /mnt/   #使用-p同步权限
    [root@server1 ~]# ll /mnt/   
    [root@server1 ~]# chown mfs.mfs /mnt   #修改/mnt目录的所属用户和所属组为mfs(相当于修改的是磁盘)
    [root@server1 ~]# ll -d /mnt/
    [root@server1 ~]# umount /mnt     
    [root@server1 ~]# ll -d /mnt/    #此时的/mnt是普通的/mnt,用户和用户组是root
    

    在这里插入图片描述

    在这里插入图片描述

    [root@server1 ~]# mount /dev/sda1 /var/lib/mfs/
    [root@server1 ~]# df
    
    #验证moosefs-master服务是否可以正常启动,因为/var/lib/mfs目录中的文件是挂载过来的。
    [root@server1 ~]# systemctl start moosefs-master   
    [root@server1 ~]# systemctl stop moosefs-master
    

    在这里插入图片描述

    配置server4(iscsi客户端):这里的操作与server1故只贴图

    在这里插入图片描述

    连接,查看多了一块磁盘:

    在这里插入图片描述

    在这里插入图片描述
    挂载并测试服务是否可以开启:

    在这里插入图片描述

    第三步:配置 pacemaker+corosync+pcs

    首先要配置高可用的yum源:

    在这里插入图片描述

    [root@server1 ~]# vim /etc/yum.repos.d/westos.repo  
    #添加以下内容
    [HighAvailability]
    name=HighAvailability
    baseurl=http://172.25.27.250/westos/addons/HighAvailability
    gpgcheck=0
    

    在这里插入图片描述
    验证yum源是否添加成功

    在这里插入图片描述

    将此yum配置文件发送到server4端

    [root@server1 ~]# scp /etc/yum.repos.d/dvd.repo server4:/etc/yum.repos.d/dvd.repo  
    

    在这里插入图片描述
    在这里插入图片描述

    安装pacemaker+corosync+pcs,开启pcsd服务,并设置pcsd服务开机自启:

    server1/4端:

    #在server1/4端安装软件pacemaker,corosync和pcs(集群化管理工具)
    [root@server1 ~]# yum install pacemaker corosync -y  
    [root@server1 ~]# yum install pcs -y 
    
    #在server1/4端开启pcsd服务,并设置为开机自启  
    [root@server1 ~]# systemctl start pcsd
    [root@server1 ~]# systemctl enable pcsd
    
    • server1

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    • server4

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    server1/4

    #安装完pacemaker+corosync+pcs软件之后,会自动生成hacluster用户
    [root@server1 ~] id hacluster
    [root@server1 ~]echo redhat | passwd --stdin hacluster
    

    在这里插入图片描述

    在这里插入图片描述
    设置server1——>server1,server1——>server4的免密,为后续集群各节点之间的认证做准备

    server1

    [root@server1 ~]# ssh-keygen   #一路敲击回车
    [root@server1 ~]# ssh-copy-id server1
    [root@server1 ~]# ssh-copy-id server4
    

    在这里插入图片描述
    在这里插入图片描述

    验证免密是否成功

    [root@server1 ~]# ssh server1   
    [root@server1 ~]# logout
    [root@server1 ~]# ssh server4
    [root@server4 ~]# logout
    

    在这里插入图片描述

    集群各节点(这里是server1和server4)之间进行认证并创建名为my_cluster的集群,其中server1和server4为集群成员

    server1

    #集群各节点认证
    [root@server1 ~]# pcs cluster auth server1 server4
    Username: hacluster   (此处需要输入的用户名必须为pcs自动创建的hacluster,其他用户不能添加成功)
    Password: 
    server4: Authorized
    server1: Authorized
    
    #创建集群
    [root@server1 ~]# pcs cluster setup --name mycluster server1 server4   #该集群的名字mycluster
    

    在这里插入图片描述

    启动集群,并设置集群开机自启:

    [root@server1 ~]# pcs cluster start --all   #启动集群
    [root@server1 ~]# pcs cluster enable --all   #设置集群开机自启
    

    在这里插入图片描述

    查看并设置集群属性:

    #查看当前集群状态:
    [root@server1 ~]# pcs cluster status
    
    #查看集群中节点的状态:
    [root@server1 ~]# pcs status nodes
    

    在这里插入图片描述

    在这里插入图片描述

    #检查pacemaker服务:
    [root@server1 ~]# ps aux | grep pacemaker
    

    在这里插入图片描述

    #检验corosync的安装及当前corosync状态:
    [root@server1 ~]# corosync-cfgtool -s
    [root@server1 ~]# pcs status corosync       #检查配置是否正确(假若没有输出任何则配置正确):
    [root@server1 ~]# crm_verify -L -V          #这里的错误是由于没有设置fence导致的,后面我们会设置
    

    在这里插入图片描述

    #查看我们创建的集群:
    [root@server1 ~]# pcs status
    Cluster name: mycluster   #我们之前创建的集群的名字
    No resources   #我们还没有添加资源,所以资源这里什么都没有
    

    在这里插入图片描述

    禁用STONITH:
    pcs property set stonith-enabled=false
    [root@server1 ~]# pcs property set stonith-enabled=false
    禁用STONITH之后,再次检查配置,发现没有错误;再次查看我们创建的集群,发现没有警告
    [root@server1 ~]# crm_verify -L -V   #没有报错
    [root@server1 ~]# pcs status   #没有警告
    

    在这里插入图片描述

    查看的内容:pcs resource资源属性配置(不需要进行操作)

    Pacemaker / Corosync 是 Linux 下一组常用的高可用集群系统。Pacemaker 本身已经自带了很多常用应用的管理功能。但是如果要使用 Pacemaker来管理自己实现的服务或是一些别的没现成的东西可用的服务时,就需要自己实现一个资源了。

    其中Pacemaker 自带的资源管理程序都在 /usr/lib/ocf/resource.d 下。其中的 heartbeat目录中就包含了那些自带的常用服务。那些服务的脚本可以作为我们自己实现时候的参考。更多关于自定义资源请参考博文:http://blog.csdn.net/tantexian/article/details/50160159

    接下来针对一些常用的pcs命令进行简要讲解。

    查看pcs resource针对资源操作用法:
    pcs resource help
       
    查看pcs支持的资源代理标准:
    [root@server1 ~]# pcs resource standards 
    ocf
    lsb
    service
    systemd
    

    注:Pacemaker 的资源主要有ocf、lsb、service、systemd几大类。
    LSB是为了促进Linux不同发行版间的兼容性, LSB(Linux Standards Base)开发了一系列标准,使各种软件可以很好地在兼容LSB标准的系统上运行, LSB即Linux标准服务, 通常就是/etc/init.d目录下那些脚本。Pacemaker可以用这些脚本来启停服务,可以通过pcs resource list lsb查看。

    另一类OCF实际上是对LSB服务的扩展,增加了一些高可用集群管理的功能如故障监控等和更多的元信息。可以通过pcs resource list ocf看到当前支持的资源。
    要让pacemaker可以很好的对服务进行高可用保障就得实现一个OCF资源。CentOS7使用systemd替换了SysV。
    Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务。

    查看默认资源管理器:
    pcs resource providers
    [root@server1 ~]# pcs resource providers 
    heartbeat
    openstack
    pacemaker
     
     
     
    查看某个资源的代理:
    pcs resource agents [standard[:provider]]
    [root@server1 ~]# pcs resource agents ocf:heartbeat   #查看ocf:heartbeat这个资源的代理
     
     
     
    查看pacemaker支持资源高可用的列表:
    pcs resource list
    

    第四步:配置mfsmaster高可用(主/备)

    首先要做的是配置一个IP地址,不管集群服务在哪运行,我们要一个固定的地址来提供服务。在这里我选择 172.25.27.100作为浮动IP,给它取一个好记的名字vip 并且告诉集群每30秒检查它一次。

    另外一个重要的信息是 ocf:heartbeat:IPaddr2。这告诉Pacemaker三件事情,第一个部分ocf,指明了这个资源采用的标准(类型)以及在哪能找到 它。第二个部分标明这个资源脚本的在ocf中的名字空间,在这个例子中是heartbeat。最后一个部分指明了资源脚本的名称。

    添加资源:vip

    [root@server1 ~]#  pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.27.100 cidr_netmask=32 op monitor interval=30s   #其中vip这个资源的名字随意给
    #查看添加vip资源后的情况
    [root@server1 ~]# pcs status   
    [root@server1 ~]# pcs resource   #查看我们创建好的资源
    [root@server1 ~]# pcs resource show   #同命令"pcs resource"
    

    在这里插入图片描述

    [root@server1 ~]# ip addr show eth0   #可以看到172.25.27.100这个ip
    

    在这里插入图片描述
    当然也可以在server4端打开监控,来实时监控集群中资源的状态

    [root@server4 ~]# crm_mon   #使用Ctrl+c退出监控
    

    在这里插入图片描述

    在这里插入图片描述
    为了验证vip这个资源的高可用,我们停掉pcs集群中的server1端,看vip是否在server4上运行

    [root@server1 ~]# pcs cluster stop server1
    [root@server1 ~]# ip addr  此时已经没有vip
    

    在这里插入图片描述

    查看server4端的监控

    在这里插入图片描述

    此时vip在server4上面

    在这里插入图片描述

    为了查看是否回切,我们打开pcs集群中的server1端,看vip是在server4上运行还是在server1上运行

    [root@server1 ~]# pcs cluster start server1  
    #在server4端查看监控,发现并没有回切
    

    在这里插入图片描述
    在这里插入图片描述

    第五步:继续添加资源

    添加资源:mfsdata(挂载信息)

    [root@server1 ~]# pcs resource create mfsdata ocf:heartbeat:Filesystem device=/dev/sdb1 directory=/var/lib/mfs fstype=xfs op monitor interval=30s
    

    添加资源:mfsd(启动moosefs-master服务)

    [root@server1 ~]# pcs resource create mfsd systemd:moosefs-master op monitor interval=1min
    

    在这里插入图片描述

    在上述上各资源添加完成之后,在server4端查看监控,监控内容如下:

    在这里插入图片描述

    从上图我们可以看到三个资源(vip,mfsdata,mfsd)不在同一个服务端运行,这显然是不合理的。因此需要进行下面的操作,将这三个资源添加到一个资源组中

    将上述三个资源添加到一个资源组中:确保资源在同一个节点运行

    [root@server1 ~]# pcs resource group add mfsgroup vip mfsdata mfsd  #添加资源vip,mfsdata,mfsd到同一个资源组mfsgroup中。(其中mfsgroup这个资源组的名字是随意给的) 
    #其中添加的顺序是有严格限制的,按照资源添加的顺序,进行添加。
    

    在这里插入图片描述

    再次在server4端查看监控,监控内容如下:

    在这里插入图片描述

    我们可以看到三个资源都在server4端运行,表示配置成功

    再次测试:

    在这里插入图片描述
    此时都运行在server1上面,说明我们实现了高可用:

    在这里插入图片描述
    为了下来的实验,记得启动server4:

    在这里插入图片描述

    第六步:补充

    修改server1,server2,server3,server4,物理机的本地解析文件

    #server1端
    [root@server1 ~]# vim /etc/hosts
    172.25.27.1    server1 
    172.25.27.100  mfsmaster   
    #server2端,server3端,server4的操作同server1
    
    [root@foundation83 ~]# vim /etc/hosts
    172.25.27.100  mfsmaster
    

    在这里插入图片描述

    开启server2和server3端的moosefs-chunkserver服务

    [root@server2 ~]# systemctl start moosefs-chunkserver
    [root@server3 ~]# systemctl start moosefs-chunkserver
    

    在这里插入图片描述

    在这里插入图片描述

    在客户端(物理机)进行测试:

    [root@foundation27 ~]# cd /mnt/mfs
    [root@foundation27 ~]# mfsmount 
    [root@foundation27 ~]# df
    

    在这里插入图片描述

    访问浏览器,看到的内容
    在这里插入图片描述

    为了表现实现mfsmaster高可用的优点,我们进行下面的实验:客户端往mfs分布式文件系统中写入内容,此时服务端(mfsmaster)端挂掉了,我们看看客户端会不会收到影响。

    前提(因为我之前将客户端的操作删除了,没删除的可以忽略这一步):

    在这里插入图片描述

    如下操作:

    #客户端往mfs分布式文件系统中写内容。
    [root@foundation83 mfs]# dd if=/dev/zero of=dir1/bigfile3 bs=1M count=1000
     
    #同时mfsmaster端挂掉mfsmaster服务
    [root@server1 ~]# pcs cluster stop server4
      
    #值的注意的是:两端的操作要同时进行,即两端都要卡顿一下
    

    在这里插入图片描述

    在这里插入图片描述
    查看状态,切换到了server4:

    在这里插入图片描述

    我们发现客户端没有受到一丁点的影响,这就是实现mfsmatser高可用的好处

    在这里插入图片描述

    展开全文
  • 一方面对于我这种使用移动手机卡的人来说,V880里面联通的定制内容毫无用处,另一方面,系统自带的程序很多都不上,放在里面占用手机宝贵的存储空间的程序还总是自动运行(比如那个什么QQ),拖慢整个系统的...
  •  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的维护  21.2.3 rman资料库  21.2.4 rman的使用  21.3 数据库备份 与疑难解析  21.4 恢复目录管理 与疑难解析  第22章 失而复得——数据库恢复...
  •  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的维护  21.2.3 rman资料库  21.2.4 rman的使用  21.3 数据库备份 与疑难解析  21.4 恢复目录管理 与疑难解析  第22章 失而复得——数据库恢复...
  •  21.2 恢复管理器(rman)  21.2.1 通道  21.2.2 备份集的维护  21.2.3 rman资料库  21.2.4 rman的使用  21.3 数据库备份 与疑难解析  21.4 恢复目录管理 与疑难解析  第22章 失而复得——数据库恢复...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 177
精华内容 70
关键字:

存储空间管理器有什么用