array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 七、Linux磁盘管理及LVM讲解 - 爱码网
wete

  1.硬盘接口

IDE:家用产品,也部分应用于服务器

SATA:一般使用

SCSI:服务器市场

SAS:高端服务器上,价格昂贵

 

 2.硬盘种类

SATA硬盘:

SCSI硬盘:

SAS硬盘:

 

3.分区符认识

MBR概述:全称为Master Boot Record,即硬盘的主引导记录。

512字节

三个部分:

1.主引导程序占446个字节

2.Partition table区(分区表),即DPT,占64个字节

3.magic number,占2个字节,55AA

 

分区:主分区(编号1-4)  ==》  扩展分区 ==》  逻辑分区(编号5)

 

主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上

扩展分区:不能使用的,它只是做为逻辑分区的容器存在的

 

注意:

主分区+扩展分区         最多只能有4个

扩展分区可以是          0个最多是1个

扩展分区不能直接使用,扩展分区必须首先创建成逻辑分区才能使用

逻辑分区可以是          0个 1个 多个

 

 查看硬盘:

[root@ken ~]# ls /dev/sd*

命名方式: /dev/sd[a-z]n

其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块......

 n  表示每块磁盘上划分的磁盘分区编号

 

 

 

 

4.文件系统与数据资料

Ext3

Ext4

XFS

 Cat /etc/fastab

 

5.fdisk管理分区

参数

作用

m

查看全部可用的参数

n

添加新的分区

d

删除某个分区信息

l

列出所有可用的分区类型

t

改变某个分区的类型

p

查看分区表信息

w

保存并退出

q

不保存直接退出

 

用法:fdisk [选项] device   

常用的选项: -l 查看硬盘分区表  

 

案例:在sdb盘上建一个分区,大小为100M

 

1.在虚拟机上添加一块硬盘

 

 

 

 

第一步:查看磁盘

[root@ken ~]# ls /dev/sd*

 

第二步:对sdb划分一个5G的空间

 

[root@ken ~]# fdisk /dev/sdb

Command (m for help): n                    #创建一个新的分区

Select (default p):                                #默认主分区,直接回车

Partition number (1-4, default 1):         #默认为第一个分区编号,直接回车

First sector (2048-41943039, default 2048):   #默认第一个扇区开始位置,直接回车

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G   #选择大小,前面要使用加号

Command (m for help): P                   #查看已经分好的磁盘

Command (m for help): w                  #w退出保存,q退出不保存

[root@ken ~]# ls /dev/sd*

 

如果执行完用ls /dev/sd*查看不到使用partprobe同步

E:拓展分区 l:逻辑分区

 

第三步:格式化

新的磁盘分区使用之前必须先格式化

[root@ken ~]# mkfs.xfs /dev/sdb1

 

第四步:挂载使用

[root@ken ~]# mkdir /wete

[root@ken ~]# mount  /dev/sdb1  /wete 目录

[root@ken ~]# df -h  查看挂载点

卸载挂载点: umount  /wete

 

扩展分区:

[root@ken ~]# fdisk /dev/sdb        

Command (m for help): n                

Command (m for help): e                

Command (m for help):                   

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G  

Command (m for help): p                

Command (m for help): w

ls /dev/sdb*

 

[root@ken ~]# fdisk /dev/sdb         

Command (m for help): n                

Command (m for help): l                  

Command (m for help):                    

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +3G  

Command (m for help): p                

Command (m for help): w

 

mkfs.xfs /dev/sdb5       

 

  

 

第五步:写入到配置文件中,开机自启

 

1.vim  /etc/fstab

/dev/sdb1(磁盘分区)/part(挂载点) xfs(文件类型) defaults 0 0

[root@ken ~]# echo "/dev/sdb1 /part xfs defaults 0 0" >> /etc/fstab

/dev/sdb1

/sdb1

xfs

defaults

0

要挂载的分区设备

挂载点

文件系统类型

挂载选项

是否备份

 全部挂载:mount -a

 

2.vim  /etc/rc.local (永久挂载)

[root@ken ~]# mount /dev/sdb5  /ww

[root@ken ~]# chmod +x /etc/rc.d/rc.local(赋予权限)

 

 

6.添加交换分区

 

free -h 查看磁盘分区大小

Swap关闭

 

第一步:划分5G大小的磁盘

[root@ken ~]# fdisk /dev/sdb

Command (m for help): n

Select (default p):

Using default response p

Last sector, +sectors or +size{K,M,G} (206848-41943039, default 41943039): +5G

Command (m for help): P

Command (m for help): w  

[root@ken ~]# partprobe

[root@ken ~]# ls /dev/sd*

 

第二步:格式化操作

[root@ken ~]# mkswap /dev/sdb2

 

第三步:

[root@ken ~]# free -h

[root@ken ~]# swapon /dev/sdb2挂载

[root@ken ~]# free -h

[root@ken ~]# swapoff  /dev/sdb2

 

 

第四步:写入到配置文件中

[root@ken ~]# vim  /etc/rc.local

 

第五步:停止swap(使用swapoff可以停止swap)

[root@ken ~]# free -h

[root@ken ~]# swapoff

[root@ken ~]# swapoff -a全部停止挂载

[root@ken ~]# free -h

 

 

7.LVM逻辑卷管理器

实战场景:对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够了怎么办?

 

 

 

 

 

 

 

 

8.LVM常用的术语

物理卷PV(physical volume)  :硬盘本身;

卷组VG(Volume Group)  :一个LVM卷组由一个或多个物理卷组成ll

逻辑卷LV(logical volume)  :LV建立在VG之上,可以在LV之上建立文件系统

PE(physical extents)  :PV物理卷中可以分配的最小存储单元,PE的大小是可以指定的,默认为4MB

LE(logical extent)  : LV逻辑卷中可以分配的最小存储单元,在同一个卷组中,LE的大小和PE是相同的,并且一一对应

 

 9.部署逻辑卷

常用的LVM部署命令

功能/命令

物理卷管理

卷组管理

逻辑卷管理

扫描

pvscan

vgscan

lvscan

建立

pvcreate

vgcreate

lvcreate

显示

pvdisplay

vgdisplay

lvdisplay

删除

pvremove

vgremove

lvremove

扩展

 

vgextend

lvextend

缩小

 

vgreduce

lvreduce

第一步:添加两块磁盘

 

 

 

第二步:让两块硬盘支持LVM技术

[root@ken ~]# pvcreate  /dev/sd{b,c}

 

第三步:创建卷组

[root@ken ~]# vgcreate  ww  /dev/sdb /dev/sdc  (卷组)

[root@ken ~]# vgdisplay   

 

第四步:创建逻辑卷

[root@ken ~]# lvcreate -n qq -L 500M ww

Lvcreate 创建逻辑卷   -n qq name逻辑卷名字)   -L 100M 创建100m大小的逻辑卷   ww(卷组)

[root@ken ~]# Ls /dev/ww/qq

[root@ken ~]# vgdispay   

第五步:把生成好的逻辑卷进行格式化

[root@ken ~]# mkfs.xfs /dev/ww/qq

第六步:挂载使用

[root@ken ~]# mkdir /ken

[root@ken ~]# mount /dev/ww/qq /ken

[root@ken ~]# df -h

第六步:开机自启

 

 

 10.Linux扩容逻辑卷xfs格式

 

第一步:创建一个逻辑卷并格式化为xfs格式

[root@ken ~]# lvcreate -n 1 -L 300M ww

[root@ken ~]# mkfs.xfs /dev/ww/1

 

第二步:挂载使用

[root@ken ~]# mount /dev/ww/1  /wete

[root@ken ~]# df -h

 

第三步:在线扩至600M

[root@ken ~]# lvextend (-r) -L 600M  /dev/ww/1

 

第四步:查看磁盘信息

发现xfs格式的逻辑卷已经扩容至600M

[root@ken ~]# df -h

[root@ken ~]# xfs_growfs  /dev/ww/1   调节文件大小

[root@ken ~]# df -h

 

11.Linux删除逻辑卷

 

第一步:取消挂载

[root@ken ~]# umount /挂载点 wete/

 

第二步:删除逻辑卷设备

[root@ken ~]# lvremove /dev/ken/ken1  

 

第三步:删除卷组

[root@ken ~]# vgremove ken

 

第四步:删除物理卷

[root@ken ~]# pvremove /dev/sdb /dev/sdc

 

分类:

linux

技术点:

相关文章: