第四十六讲——逻辑地址(IP) 为什么主机能够知道接收方是否和发送方在同一网络?我们这一讲带着这个疑问进行学习。 我们的逻辑地址是使用点分十进制表示的四段,这个逻辑地址被分为两段,网络地址和主机地址。网络地址用于标识不同的网络,主机地址用于标识本地网络内不同的主机。为了将网络地址和主机地址能够被识别,我们还需要请出子网掩码这把杀猪刀,就是它将一个完整的逻辑地址一刀劈成两段,你一段,我一段……当然这是开玩笑的。 网络地址 主机地址 通过子网掩码的和逻辑地址的运算,就可以得出网络地址和主机地址,我们也就可以通过子网掩码进行判断,逻辑地址中的哪一段是网络地址,哪一段是逻辑地址。 子网掩码:子网掩码的格式同逻辑地址,只是子网掩码的数值比较特别。当子网掩码转换成二进制时,应当是连续不断的1组成,其余为0。例如 十进制的子网掩码可以为255.255.255.0,将其展开成二进制为 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 这就是24位连续的1。 我们为了方便记忆和使用,将二进制的数字转换成了十进制,所以在将子网掩码和逻辑地址进行与运算之前,我们要先将子网掩码和逻辑地址转换成二进制。然后再进行与运算。 在与运算中,0和1相与得0,1和1相与得1,0和0相与得0。 我们的逻辑地址的每一段的取值为0-255,即每一段为八位二进制表示 0000 0000 为最小 十进制为0 1111 1111 为最大 十进制为255 所以主机在通信之前将IP同子网掩码进行与运算,如果源地址与接收方的网络地址一样,则在同一个网络,否则主机不在同一个网络,这时就需要通过网关进行转发。 所以任何时候,网络中的主机要同网关在同一网络中,才能实现网关接收数据并进行转发。在路由上,也有将IP地址同子网掩码相与得过程,用于判断接收方的IP地址是否在同一网络中。 一个交换机可以连接多个不同的冲突域。 一个路由可以连接多个不同的广播域。 在路由也像交换机一样,内部维护有一张表,里面记录了(维护了)要到达什么地方通过哪个接口。这张表称为路由表。 在这张图中,1.1要与4.1通信,首先1.1的主机要将自己的IP地址同子网掩码相与,再将目标地址与子网掩码相与,判断两主机是否存在于同一网络,如果不在同一网络则将数据包转发给路由R1,R1在路由表中查询(通过手动指定指向关系),知道到达4.1主机所在的网络需要进过路由R2,于是路由R1将数据转发给R2,R2在接收到数据后通过查看报头比对IP(同源码进行与运算),发现不在本地网络,于是查路由表知道通过路由R3能够到达4.1所在主机的网络,将数据转发给路由R3,R3接收到数据后,进行IP比对,在路由表中查询4.1所在网络的端口(网关),并通过该端口将数据转发给交换机(switch4),交换机收到数据后进行广播通知4.1主机,取得4.1主机的回应(取得MAC地址)后,将源地址MAC和4.1主机MAC封装报文,发送给4.1主机。于是4.1主机收到以后拆开数据报文,获得数据中的内容。 路由具有自动学习的功能,其利用某种协议(RIP2、USPF等),假设在某一传输线路上某一设备故障,那么之前学习的内容是有效的,导致数据始终发送给故障的设备,导致数据无法到达,所以路由自动学习是实时的,当某个链路不通时,可以快速的响应并删除其指向。 如果是在一个主机相对稳定的环境中,应当采用手动指定的方式,指定路由的对应关系,如果在这种环境中使用动态学习,则会占用一些硬件资源,并且需要一定的时间。所以东财学习常常使用在主机经常变动的网络。 在路由器中,由于某个条目的改变,整个链路从一种状态转换成另一种稳定状态之前的过程,我们称为路由表的收敛过程。 路由协议(RIP2、OSPF等),他们支持的网络规模不同,其收敛时间也不同,算法也不一样,生成路由表的效率也会不一样。所以路由器要以什么样的协议去学习需要根据需要选择。 IP为被路由协议。在整个的传输过程中,IP地址都不会改变,从而实现了主机到主机的通信,能标识主机和目标主机。 MAC:本地网络设备之间的通信,物理设备之间的通信,它的范围不能超出本地网络。 在我们的主机上,并不是说网卡与网卡进行通信,我们要知道,网卡只是一个传输的介质,其实际上是运行在主机上的进程(运行在主机上的程序称为进程)之间的通信,这些进程依赖网卡与其他主机的进程进行通信。 而且,每一个主机上都是由多个进程的,因此,我们为了标识主机上哪个进程与其他的进程,还需要一个地址。这个地址就是端口号,通过不同的端口号来标识不同的进程。 每一台主机上的可用端口为0-65535之间的端口,端口与进程之间没有必然的联系,这就意味着对方的进程工作的端口不确定。 于是对这些端口就进行了规范,用于定义端口的服务,这个规范的定制者为国际上的名称地址分配机构。 例如80端口分配给WEb服务,一些著名的服务应当有固定的服务端口,而不能随意的使用其他的端口,以确保能为他人提供服务(服务端)。 对于客户端来说,使用的额端口是随机的,没有被使用的端口。且一个端口只能属于一个进程,且这个进程会对端口进行监听。 对于服务端端口来说来说,端口是被动打开的,对客户端来说访问服务端端口是主动打开。 为了使数据能够到达目的地,端口与IP地址相关联,且与MAC地址县关联。 如果本地主机上有两块网卡,且每块往卡上都有IP地址,都可以使用各自的端口,也就是说两个地址就有相同的端口可以使用且不相互影响,因为端口同IP、MAC相关联。对于当前主机如何区分相同端口的不同IP信息?这就意味着必须将IP同端口绑定起来,这种绑定叫做套接字。 IP:port 绑定起来的一组称为SOCKET,一个套接字。 所以在将来我们启动某个进程的时候,监听在某个套接字上,也就是说启动一个WEB服务器,这个WEb服务的进程将监听这个地址的80端口,这就意味着这个主机就跟这个地址的80端口绑定起来了,也就意味着和这个套接字绑定起来了。 我们不能手动绑定,而是通过某个进程将IP和端口进行关联到这个进程上。从而实现主机间的通信。 例如A主机发送一个报文到目标主机的80端口,只要报文能够到达B主机,B主机的80端口就能够接收到报文。 我们的主机在通信时所加的port、IP、MAC信息在接收方能够正确理解才能实现信息的传输,因此主机之间就需要一种约定,也就是协议。 这些协议就是互联网通信中的关键几环,而这些协议每一个对应的步骤是根据对方的那个相同的功能建立关联关系的,发送方的IP由接收方解析,MAC由对方解析,端口由端口解析,也就是说每一个都称为一个子系统,或者子功能,专门用于管理IP、MAC、端口,这个就叫做协议的分层。将一个大的任务划分为小的任务。 协议的层级结构以OSI七层模型为例: OSI由国际标准化组织ISO提供,将一个报文从源地址到目标地址要经过的所有过程分为7个子功能 应用层——具体的应用 表示层——加密解密,是否压缩等等 会话层——双如何建立回话 传输层——封装源端口、目标端口 网络层——封装IP(源IP、目标IP) 链路层——封装源MAC和目标MAC 物理层——用于封装数据报文的首部,这一步会封装一大串的1或者0,用于分割报文,称为报文的前导码。 虽然我们通过端口能到达对方的WEB服务器,但是对方的WEb服务器也可以提供多个网页(一个站点上可能会有多个网页)标识同一服务上的不同页面就需要应用层协议,例如HTTP协议(应用层协议)。 给自己讲linux 2017-01-15 评论 1625 次浏览
第四十五讲——网桥 在我们使用逻辑作为主机间的通信验证时,我们的MAC(物理地址)并不是空闲了,因为在一个网桥上连接的主机,最终的通信一定是依靠MAC(物理地址)实现的,即主机间的通信是依靠设备的。对于本地网络来说,IP地址(逻辑地址)并没有太大的意义,只是为了保证一个网桥上主机发送数据到另一个网桥主机上的时候,能够通过连接网桥的中间设备,这个中间设备能够标记不同的交换网络。 对于在同网络之间转发的数据报文,这个中间设备是不予理会的,当头部的逻辑地址(IP地址)不属于本地网段时,中间设备才会将报文进行转发,这种机制无法通过MAC地址来实现,即这种机制隔离了广播域,而MAC地址的工作机制就是广播。 当A发出的报文目标不在本地,那么报文一定会交给网关,这个网关称为默认网关。这个网关接口相当于一个主机,因此,这个接口也应该有它的MAC地址,我们之前说过,真正的通信是依靠物理地址的,如果没有MAC地址,网关是无法接收到主机发出的报文的,也就是说,本地网络的通信必须要依靠MAC地址,网关接口要接收并转发,就必须要识别MAC报文。网桥接收报文之后不会做任何处理,直接将报文转发给网关,那么问题来了,网关给谁? 这个就是中间设备使用逻辑地址(IP地址)隔离广播域,IP地址的作用就是识别数据包是属于本地网络还是远程网络(不在本地网络的,统一称为远程网络)。 有了逻辑地址之后,主机在发送信息时,会将自身的IP地址和对方的IP地址封装进报头,当目标IP不在本地网络时,首先要将报文交给网关,然后由中间设备进行转发。 在网关接收到数据包时,会将MAC地址段拿掉(内网通信依靠MAC地址),然后查看目标IP是哪个网络的主机,将报文进行封装送给目标IP所在的网关接口2,当网关接口2收到报文后只是知道,这个数据包是发给这个网段的2.2(假设IP地址为2.2)的主机,于是网关接口会进行广播,询问谁是2.2,2.2的主机收到后会进行回复,此时会将主机的MAC地址封装在内,网关接口2收到数据包时也就知道了2.2主机的MAC地址,于是封装数据,发送给2.2主机。 所以说IP的作用就是在网络之间转发报文。 MAC地址是16进制的6个段组成,使用冒号隔开,其中全F位的用于广播,任何地址都可以收到。 如果一个网桥有多个接口,并且每个接口接一台主机,我们称为交换机。 早期网桥是用于桥接两个网络的,当主机同交换机的一个接口相连接时,主机只与这个接口相冲突,并不与其他的设备产生信道的争用,于是有了交换机之后,冲突就被限定在端口与主机之间。 广播其实和交换机没有关系,如果发送方定为接收方的目标地址为全F时则产生广播。在本地网络中,主机间的广播是必不可少的,这是因为其地址结构决定的,主机间的识别是依靠MAC地址的,因此也无法用于判断主机是否处于同一位置(网络)。 于是我们必须要将广播进行有效的隔离,也就是说,需要将交换机用中间设备隔离起来。这个中间设备我们称为路由。 交换机(switch),连接各主机用于隔离冲突域。 IP地址在MAC地址之上,英语表示本地网络和远程网路。使用点分十进制表示。 在我们有了IP地址后,本地网络间的通信也都使用IP地址来标识,先判断其处于同一网络,数据包就不会发送向网关,逻辑地址是附加在操作系统上的,所以逻辑地址是可以改变的,而物理地址(MAC)是实现电器信号传送的,在本地通信中,模型如下,本地通信网关是不参与的。 数据 源IP 目标IP 源MAC 目标MAC 发送方发送信息时,会先广播,为了确定逻辑地址所对应的MAC地址。 由逻辑地址转换为MAC地址的过程我们称为地址解析(ARP协议) 当A发送到D时,先将数据包发送到R1,R设备接收到之后将MAC地址头部去掉,识别IP网段,通过分析知道D的主机在R设备的另一个接口上,于是将数据包封装后发送到另一个接口,在R2接口收到之后将MAC地址去掉,读取目标IP,并向本地网络广播,询问目标IP,D主机将MAC地址封装后回应,R2接口接收到回应后封装IP地址发送到D主机。 R设备的作用,将一个交换网络的报文转给另一个交换网络,中间涉及MAC地址的转换,这个设备称为路由器,R1和R2称为对应网络的网关,用于转发非本地通信。 将逻辑地址转换为MAC地址的过程我们称为地址解析,也称为ARP解析。 这一协议反过来也是成立的,通过MAC地址寻找对应的IP地址,这称为PARP,,即反向地址解析(本地通信的完成)。 给自己讲linux 2017-01-14 评论 1512 次浏览
第四十四讲——网络 我们计算机是通过各种介质连接起来,有线或者无线(电磁信号),光纤传输途中为光信号,但是最终还是要转换为电磁信号。 计算机之间通信的电磁信号是按照某种既定的规律进行的,且这种规律在被连接计算机之间都能够理解,如果高电平为1,低电平为0,则定义连续不间断传输时1的个数,0的个数。那么这种规律我们称为协议。 协议:protocol。 传输速度体现在物理设备上有 百兆网卡 千兆网卡 万兆网卡 代表网络设备在每秒钟之内能够调制出去的信号或者接受进来的信号的个数。 10Mbps,每秒钟传输10M个bit位 传输速率不仅和设备相关,和传输介质也相关,而我们传输用到的网线很可能容纳能力是有限的,在传输中以最低的设备为准(水桶短板原理)。 我们使用的几乎都是以太网,而以太网是由施乐公司的PARK实验室无偿提供给全人类的。 网络的类型: 一是总线型网络,一般使用同轴线缆(有线电视线缆),总线型网络在某一时刻只允许一台主机发送信号,这样一来为了不使通信产生混乱,我们就需要一种机制来进行调度。 这种机制就是线路仲裁,线路仲裁就是决定哪一个主机在某一时刻能够使用这一传输介质。 在总线型网络模型当中,解决底层通信信道争用,需要一种逻辑上的算法,或者解决方案,也可以称为规则。 为了使发送出去的数据能够被顺利的接收,我们需要给每台主机的网络设备一个标识码,就像我们的名字一样,这个识别码最主要的就是支撑MAC这种算法,所以使得仲裁的结果得以实现,因此,这个识别码(地址)也通常被称为MAC地址。 MAC:Media Access Control介质访问控制 通信建立之前,发送方会发一个数据包,这个数据包有一个首部(也称为报头),其他主机对于这个数据包是不予理会的,真正的信号就在报头的后面。 当一个主机发送一个信号,所有网内的主机能收到,这种一对多的模式我们称为广播。 一对一我们称为单播。 为了实现线路仲裁,我们还需要标识每一台主机,并且需要知道网内是否有新设备接入。线路仲裁的实现,需要我们知道线路是否被使用,如果发生冲突怎么办。 CSMA/CD (载波侦听多路访问/冲突检测) carrier sence multi access collision detection 在网络上,如果A要发送信号,,要探测一下,线路是不是正忙,如果不忙则立即发送信号,而且是边发送边侦听,如果在发送途中发生冲突,则立即停止发送并随机等待一段时间再次探测。 若果A/B同时探测到线路空闲,则都会立即发送数据,此时会回撤并等待一个随机时间,这个随机时间和算法有关。 边发送边侦听,任何时候发生冲突都要立即停止发送,并等待一个随机时间侦听线路。凡是使用了这种机制的都称为以太网,所以以太网最核心的标志CSMA/CD。这只是一种线路仲裁机制。 二是环形网络(IBM的专利技术) 将多台主机组织成为一个环状结构彼此之间连接起来。在整个线路中游走着一个令牌,如果这个网络上没有信号传输,则令牌游走在网络中,当某个主机需要传输数据时,抓住这个令牌即可,只有持有这个令牌的主机才能发信号。这是通过令牌环实现线路仲裁机制。 三是星型网络,通过一个设备上的接口将计算机连接起来。 早期,连接许多主机的设备我们称为HUB(集线器),集线器其实就是简化了总线型结构,将每一个接口统一提供出来,简化操作。HUB是一种便携的总线结构,仅仅是为了接线方便。 我们知道总线型网络中主机数量越多,发生冲突的可能性越大,因为众多的主机都是靠一根线缆传输信息,且同一时间只能有一台主机传输信息。冲突会随着主机的增加而增加,有效的传输时间会缩短。 主机通信使用的线缆长度对传输也是有影响的,线缆有电阻,所有的信息都是通过电信号传输的,所以线缆会有一个有效距离,过长的线缆会造成信号的衰减。为了长距离传输,我们可以使用中继设备将信号放大再传输。 为了减少主机间的冲突,我们通过一个叫网桥的设备将主机分隔开。 网桥:连接两个物理网络的设备,当A与B通信时,为内部通信,网桥不予理会,当A与C通信时,网桥会将A的内容转发到B所在的2号网络,网桥连接的网络中所有的主机不能重名,否则会造成信号无法到达目的地。网桥中维护有一张表,分别标明每个接口中有哪些主机。 网桥内部有一个存储空间,作为网管应该知道每个接口上的主机在哪个位置,将对应关系手动建立起来,网桥就可以工作了。网桥也可以自动学习,通过接受数据报文的头部信息(接收方地址,发送方地址),确认发送方所在接口的主机。此时接受到报文的主机会相应发送方,于是接收方所在的接口被网桥识别。过一段时间,网桥就会生成一张表,但是在此之前发送方是怎么知道网络上有哪些主机? A主机通信时需要知道目标主机是谁,并在发送之前询问其是否在线。 于是,我们将网桥的模型极端化,即每一个端口上只连接一台主机,这个设备中有一个交叉点阵列的网络,有很多的线路可以走。当A与B通信时,C与D也能通信,且他们之间的通信不产生干扰,不发生广播行为,属于点对点通信。这就是我们的网桥设备。 半双工模型,即双方都能向对方发送信息,但是在某一时刻只能有一方发送信息。 全双工模型:使用两根线,一根用于接收一根用于发送。我们使用的网线就是全双工的应用,四组八根。实际上我们使用的仅仅是其中的两根,但是我们不能只接两根线,最少要接四根。 网线是由绿橙蓝棕四色的线缆组成,且每一根都有一根和白色相间的线,两两绕成一组,扭在一起的两根线,一根用于传输信号,一根用于抗干扰。 我们的网桥工作时,其内部也是维护有一张表的,存储在一个芯片当中,这是网桥最核心的智能体现,所有对应关系都是由表来完成的,这张表中的内容是有有效期限的,并不是永久有效的,会定期清理一次,对于一个主机经常变动的网络来说,动态学习是一个比较好的机制,如果一个网络中的主机很稳定,很少出现变动,那么我们可以进行手动建立对应关系,减少网桥的负担。 主机是依靠进程来进行通信的,通信之前,会广播一个信号询问接收方是否在线,如果接收方在线则恢回复,通信开始建立。 网桥将左右两个网络隔离成了两个冲突域,即减小了冲突域的范围。 网桥只能隔离冲突,并不能隔离广播。 冲突域:彼此争用信道的范围。 为了降低冲突域,我们引入了网桥这种设备,所以网桥本身并不能隔离广播,网桥对于广播信号必须要进行转发,因为发送方发送数据前并不能确定在网络中存在接收方。 广播风暴:即很多主机产生很多广播。 所以网桥虽然能够连接很多主机,但是这些主机的数量众多的时候会带来很多的问题。 解决这一问题就像是之前为了减小冲突域一样,缩小冲突域的范围。用一个中间设备将网桥连接起来,隔离广播,对于广播信号不予理会。这时平面化的广播形式的通信不足以应付这个问题了。(这种标识主机的方式不足以应付隔离广播域的问题。)MAC标识主机时,任何两个主机通信都需要通过广播的形式进行。 因此,我们在平面化的MAC地址(物理地址之上引入了一种逻辑地址,每一个主机间通信不再是直接使用MAC,二是依靠这个逻辑地址,也称为IP地址。 给自己讲linux 2017-01-13 评论 1507 次浏览
第四十三讲——杂记 awk是一个报告生成工具,可以指定一种分分隔符,无论分隔符的个数多少都可以完成字段的提取。 awk适用于cut命令不能发挥作用的场景,例如/etc/fstab中每一个字段的提取,每个字段间有大量空格且数量不确定,此时awk的作用就显现出来了。 awk也是一个文本处理工具,awk每次只从文件中读取一行,每读取一行都按照指定的分隔符隔开,且切开后还会给每个字段一个标识 $1-$n awk ‘pattren{action}’ file pattren 表示我们需要处理的行(符合条件的行) action为我们处理的动作 awk的处理动作最主要的是以我们定制的格式来显示。 {print $1} 显示第一个字段 显示多个字段可以使用逗号隔开,输出时默认为空格隔开 $0表示一整行中的所有字段 $NF表示一行中最后的一个字段 NF为每一行字段的个数(为一个数字) awk –F 指定输入分隔符。 我们对一个硬盘进行重置操作,也就是需要删除所有分区时,不必使用fdisk命令对硬盘中的分区逐个操作,我们知道分区信息都是保存在MBR中的,所以只要覆盖了MBR分区即可实现删除分区的操作。 d if=/dev/zero of=/dev/sd[a-z] bs=512 count=1 因为dd命令操作很快,而且所有的操作均是在内存中完成再写入硬盘的,所以我们应当执行同步命令 sync 同步数据至硬盘,一般来说,同步结束后,我们需要等待一段时间,给硬盘一个操作的时间,然后再进行硬盘的操作。 复杂的逻辑判断: -a 与、-o 或 、 !非 例如:如果a>b,且a<c if ((a>b)) && ((a<c))-->等价于-->if [ $a –gt $b –a $a –lt $c ]-->等价于-->if [[ $a>$b]] && [[ $a<$c]] 如果:a>b或者a<c if ((a>b)) || ((a<c)) -->等价于-->if [[$a>$b]] || [[$a<$c]]-->等价于-->if [[ $a –gt $b –o $a –lt $c ]] 给自己讲linux 2017-01-12 评论 1460 次浏览
第四十二讲——LVM快照卷 快照卷,一般来说我们创建的快照卷用于备份,是不允许被修改的,所以我们创建快照卷的方式为只读,我们需要知道的是,快照卷也是逻辑卷,使用lvcreate创建。 lvcreate -s创建快照卷 -p指定权限r(只读),w(读写) 我们需要知道,快照卷必须要跟源卷在同一个VG(卷组中),所以我们创建快照卷的时候,要指定为哪个逻辑卷创建。快照卷的生命周期为整个数据访问时长,在这段时间内,数据的增长不能超出快照卷的大小,如果超出快照卷的大小,快照卷将会放弃所有操作并自我损毁。最安全的做法是将快照卷做成和源卷一样大,或者和源卷中的数据一样大,这个需要自己估计。 创建快照卷: lvcreate –s –L # -n slv_name –p r /path/to/lv -s 指定为快照卷 -L 指定快照卷的大小 -n 指定名称 -p 指定卷的权限,快照卷一般为只读 快照卷创建结束后挂载即可,创建快照卷时应确保VG(卷组)上还有空余空间。 我们创建快照的目的是进行数据备份,所以我们还需要对快照中的数据进行备份。 tar –jcf /tmp/test.tar.bz2 /mnt/test 至此,快照卷的生命周期结束,先使用umount卸载快照卷,再将快照卷移除 lvremove /dev/VG_NAME/SLV_NAME 将来一不小心误操作,或发生意外,可以使用备份进行还原操作,但是还原回去的并不是这一刻的数据,因此这种备份机制最多只能是我们的一种基础备份,在这备份之后改变的数据还需要结合增量备份来完成。 快照备份是不完善的,因为数据回不到期望的那一刻,结合数据库,使用增量备份或者差异备份实现还原回数据故障的那一刻。 tar -jcf 归档后的文件名 需归档的文件或目录 tar -xf 归档文件(*.tar,bz2) -C /path/to/somewhere(指定的解压位置) 给自己讲linux 2017-01-11 评论 1519 次浏览
第四十一讲——LVM管理 我们对于LVM2的管理层次为 管理物理卷PV 管理卷组 VG 管理逻辑卷 LV 首先是物理卷的管理 pvcreate 创建物理卷 pvcreat /dev/sd{a,b,c,d} 创建物理卷(pv) pvremove 抹除物理卷元数据 pvscan 扫描物理卷 pvscan 查看当前系统上一共有多少个pv我们将一个主机的pv拆除加入其他主机上时,我们需要先扫描其元数据,先识别成pv类型。 pvdisplay、pvs 查看物理卷 pvs查看当前系统的所有pv(简单查看),可以查看pv属于哪一个VG pvdisplay 查看pv的详细信息 当一个pv还没有加入VG(卷组)的时候,是没有PE大小的,加入某个VG后才会拥有PE的大小。 pvdisplay 也可以指定某个pv查看其信息 pvdisplay /dev/sd[a-z] pvmove 移动数据(将一个物理卷的数据移动到其他物理卷上) 用于做逻辑卷的底层设备类型是非常独特的,逻辑卷的底层分区类型为8e,我们之前讲的RAID分区类型为fd。 fdisk最多只能创建15个分区,这是fdisk本身的限制。 我们要创建卷组(VG)所需要的命令以vg开头 vgcreate 创建卷组 vgcreate vg_name /dev/sd[a-z] 指定卷组名称,和其包含的pv vgcreate VG_NMAE /PATH/TO/PV 加入VG中的pv,PE大小默认为4.0MB, -s 指定PE的大小,支持的单位有{B/K/M/G/T/P/E} PE physical extend size 物理盘区大小 vgremove 移除卷组 vgremove VG_NAME 移除一个VG,当我们在VG上创建了LV,并且存储了数据,VG是不能随意删除的。 vgextend 扩展卷组,扩展就是加入新的pv 扩展卷组就给卷组增加新的pv,我们先使用pvcreate /dev/sd[a-z] 创建一个pv vgextend VG_NAME /dev/sd[a-z] 将新的pv加入卷组。pv在加入一个人卷组时其PE为VG创建时指定的大小,PE大小在VG创建好之后是不能改变的。 vgreduce 缩减卷组,缩减卷组就是移除pv 我们要缩减一个VG时,先要将pv上的数据转移到其他pv上 pvremove /dev/sd[a-z](需要移除的pv)数据会转移到其他pv上,转移完数据之后我们就能够从pv中移除pv。 vgreduce VG_NAME /dev/sd[a-z] 从某一个卷组中移除哪个pv。 使用pvremove抹除其中的元数据(从VG中移除之后)。再使用pvs等命令查看就没有移除的物理卷的信息了。 vgs 查看卷组信息 vgdisplay 查看卷组详细信息 vgscan 扫描卷组 创建LV lvcreate 创建一个逻辑卷 lvremove 移除逻辑卷 lvextend 扩展逻辑卷 lvreduce 缩减逻辑卷 lvresize 改变逻辑卷大小 lvs 查看lv卷 lvdisplay 查看lv卷的详细信息 lvcreate –n lv_name –L #M/G(指定空间大小) vg_name(指定卷组名称) -n 指定lv(逻辑卷名称) -L 指定占用空间大小(常用) -l 指定占用多少个PE(盘区) 至此,我们已经创建好了一个逻辑卷(lv)。可以正常格式化并挂载使用。 mke2fs –j /dev/VG_NAME/LV_NAME mount /dev/VG_NAME/LV_NAME /mnt 挂载到/mnt目录。 挂载完成后使用fdisk –l 命令查看可以发现实际的挂载源为/dev/mapper/VG_MAME-LV_NAME,所以/dev/mapper下才是真正意义上的设备文件,我们引用的只是一个连接。 逻辑卷的移除: lvremove /dev/VG_NAME/LV_NAME(指定逻辑卷的路径) 我们需要注意的是,正在使用中的逻辑卷是不能移除的,得先卸载,再lvremove 扩展分区(LV逻辑卷) 我们知道,要想使用文件系统需要先划分分区。文件系统本身边界是在物理空间边界内定义的,文件系统中定义了我们一共可以在里面使用多大的空间件存储数据。 创建分区实际上就是创建物理边界的过程,在物理边界的内部,我们创建了文件系统,文件系统的边界我们称为逻辑边界,所以到底能够存储多少数据取决于物理边界的大小,还取决于逻辑边界的大小,实际上逻辑边界是紧靠在物理边界的大小上创建的,他们基本上是一样的。 我们知道逻辑分区有物理边界,还有逻辑边界,我们扩展逻辑边界需要先扩展物理边界,而后再扩展逻辑边界(即逻辑边界是附着在物理边界上的) 在LVM中,逻辑卷相当于分区,也就是物理边界,所以要扩展文件系统,我们就需要先扩展逻辑卷边界,然而逻辑卷下还有卷组,因此我们先需要扩展卷组才能对逻辑卷进行扩展。扩展逻辑卷的命令: lvextend –L +#(+5G增加 5G) /PATH/TO/LV_NAME 扩展逻辑卷边界 resize2fs /PATH/TO/LV_NAME #G(5G 扩展到5G) 扩展文件系统边界 resize2fs -p /PATH/TO/LV_NAME 扩展文件系统边界 -p 能扩展到多大就扩展到多大。 修复逻辑边界,若是逻辑边界超出物理边界很可能导致文件系统的崩溃。事实上,我们在扩展逻辑边界时应当先检查文件系统。 e2fsck –f /dev/VG_NAME/LV_NAME 强行进行文件系统检测 其实扩展的风险是很小的,我们需要确定的是扩展逻辑卷(lv)时应确定VG上有足够的空闲空间。 如果文件系统被挂载处于使用当中,不需要卸载,在线就能够扩展。 缩减分区(lv逻辑卷) 首先,缩减逻辑卷的风险是很大的,很可能造成数据的损坏,一定不要在线进行缩减! 缩减需要先卸载 还得保证缩减后的空间能够保存所有的数据。 为了足够可靠,在缩减之前应当强行检查文件系统,以确保文件系统处于一致性状态。 确保没有问题了才可以使用。 resize2fs /PATH/TO/LV_NAME #G(如60G,为缩减后的大小)先缩减文件系统边界。 lvreduce -#G /PATH/TO/LV_NAME 缩减逻辑卷(lv)边界 再缩减VG(将pv中的数据转存到其他pv后,将pv移除卷组) pvmove /PATH/TO/PV 将pv中的数据移动至其他pv vgreduce /PATH/TO/PV 移除空闲的pv pvremove /PATH/TO/PV 清除pv的元数据。 清除pv信息(元数据) 总结一下缩减逻辑卷边界 先使用 df –lh 查看lv使用情况,以确保缩减后的空间能容下原有数据。 卸载umount已经挂载的盘 强行进行文件系统的检测,没有问题则可以缩减逻辑边界 e2fsck -f /PATH/TO/LV_NAME resize2fs /PATH/TO/LV_NAME #G(缩减后的大小) 缩减物理边界 lvreduce –L -#G /PATH/TO/LV_NAME 缩减逻辑卷#G大小空间,当缩减完成没有问题后,重新挂载即可。 给自己讲linux 2017-01-10 评论 1524 次浏览