磁盘管理

Linux之磁盘管理

 

1. 磁盘的分区、格式化和挂载

1.1 MBR全称为Master Boot Record

主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备

 

1.2 MBR+BIOS

MBR支持32位和64位系统;MBR支持分区数量有限;MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间。

 

1.3 GPT(GUID Partition Table)

全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。

支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。向后兼容MBR。

fdisk -l      #查看系统所有的磁盘信息

 

关于/dev/sda1名字的介绍

s代表除了IDE(IDE会用h表示)接口的其它接口,如scsi,sata,u盘等

d代表disk

a代表第一个磁盘

1代表第一个分区

 

2. 新建分区

fdisk /dev/sdb

命令(输入 m 获取帮助):m

命令操作

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extra functionality (experts only)

重点了解一下这几个:

a     toggle a bootable flag            #表示一个分区作为引导分区

d     delete a partition                    #删除一个分区

l     list known partition types         #列出已知的分区类型

n     add a new partition                #增加一个分区

p     print the partition table          #打印当前的分区表

q     quit without saving changes       #不保存退出

w     write table to disk and exit          #保存退出

命令(输入 m 获取帮助):n                 #(n 表示增加分区)

Partition type:

   p   primary (0 primary, 0 extended, 4 free)         #(这里的p表示主分区)

   e   extended                                                       #(这里的e表示创建扩展分区)

Select (default p): p                #(输入p选择主分区)

分区号 (1-4,默认 1):1         #(默认,即敲回车)

起始 扇区 (2048-41943039,默认为 2048):         #(默认,即敲回车)

将使用默认值 2048                               

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G     #指定分区大小

命令(输入 m 获取帮助):p            #(p 查看一下分区情况)

命令(输入 m 获取帮助):w            #(w 保存分区信息并退出)

The partition table has been altered!

 

ls /dev/sdb*                      #查看分区是否成功

/dev/sdb  /dev/sdb1       #显示有这个,说明分区创建成功

 

3. 格式化分区

分好区了以后我们还无法直接使用该分区,还需要先将该分区进行格式化了才能使用。

mkfs.xfs /dev/sdb1                #格式化分区

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks

                 =                       sectsz=512   attr=2, projid32bit=1

                 =                       crc=1        finobt=0, sparse=0

data          =                       bsize=4096   blocks=262144, imaxpct=25

                 =                       sunit=0      swidth=0 blks

naming      =version 2              bsize=4096   ascii-ci=0 ftype=1

log             =internal log           bsize=4096   blocks=2560, version=2

                  =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

 

4. 挂载分区

现在已经将新建的分区格式化好了,但是还是不能使用,还需要挂载到我们的系统目录下才能使用。

mount 命令  挂载(启用一个磁盘分区或文件)

命令格式:

# mount [选项]  挂载点  需挂载介质(磁盘或文件)

 

选项:

-o   用来描述设备或文件挂载方式,该选项拥有以下常用参数:

    loop    将一个文件以硬盘分区的形式挂载到系统上

    ro      使用只读的方式挂载

    rw      使用可读可写的方式挂载

例:mount /dev/sdb1   /sdb   #将磁盘sdb1挂载到 /sdb 目录下

df -h                                      #查看当前哪些分区挂载到哪些目录的对应信息

 

5. parted命令新建分区

parted 命令 另一个磁盘管理工具,可用于msdos分区和GPT分区

命令格式:

parted [需要管理的磁盘]  后面如果不指定磁盘,则为系统中排列最前面的那个磁盘分区

 

parted /dev/sdc               #使用parted工具为sdc磁盘分区

GNU Parted 3.1

使用 /dev/sdc

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted)

 

help                  #查看帮助

mkpart              #创建一个分区

p       print         #查看当前磁盘的分区信息

q       quit          #退出程序

rm                     #删除分区(当有多个分区时会让你选择删除哪个个分区,输入分区编号)

 

(parted) p                  #查看当前磁盘的分区信息                                                    

错误: /dev/sdc: unrecognised disk label         #未识别是的磁盘标签

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 10.7GB

Sector size (logical/physical): 512B/512B

Partition Table: unknown

Disk Flags:

(parted) mklabel                  #创建磁盘标签

新的磁盘标签类型? gpt       #指定磁盘标签为GPT

(parted) mkpart                   #创建一个分区

分区名称?  []? sdc

文件系统类型?  [ext2]? xfs

起始点? 1

结束点? 5G

(parted) p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 10.7GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:

Number  Start   End     Size    File system  Name  标志

 1      1049kB  5000MB  4999MB               sdc

(parted) q

信息: You may need to update /etc/fstab.

 

创建好分区以后,我们还是需要对新建的分区进行格式化和挂载才能正常使用

mkfs.xfs /dev/sdc

mkdir /sdc

mount /dev/sdc /sdc

 

6. 添加交换分区

手动添加系统的swap(交换分区)

命令:

free -h         #查看当前系统的swap分区信息

mkswap       #添加swap分区

 

mkswap 命令使用格式:

1. mkswap /dev/sdc1           #使用一个新建分区作为swap分区

2. mkswap /swapfile             #使用一个二进制文件作为swap分区

 

我们先新建一个分区出来:fdisk命令建立一个sdc1新分区大小为1G

mkswap /dev/sdc1          #使用sdc1分区作为swap分区

mkswap: /dev/sdb1: warning: wiping old xfs signature.

正在设置交换空间版本 1,大小 = 1048572 KiB

无标签,UUID=4aa36c9f-a03f-4722-baa2-808e41416520

 

swapon /dev/sdc1          #使上面的操作生效(启用新加入的swap分区容量)

 free -h                          #再来查看一下现在的swap分区容量是否发生改变

              total        used        free      shared  buff/cache   available

Mem:            976         552          71           6         352         225

Swap:          3071           2        3069

 

swapoff /dev/sdc1           #取消sdc1作为swap分区

free -h                             #查看容量是否缩小

              total        used        free      shared  buff/cache   available

Mem:            976         552          71           6         352         225

Swap:          2047           2        2045

 

使用二进制文件作为swap分区(二进制文件是无法使用cat和vim进行查看和编辑的)

dd命令

从标准输入、文件或设备读取数据,依照指定的格式来转换数据, 再输出至文件、设备或标准输出。

格式:dd <选项=值>

常用选项

if=file:输入文件名或设备名,确省标准输入

of=file:输出文件名或设备名,确省标准输出

bs=n:同时设置输入输出块的大小为n

count=n:仅仅读取指定的n块数据

 

# dd if=/dev/zero of=/swapfile bs=1M count=1024           使用dd命令生成一个大小为1024M大小的二进制文件

# mkswap /swapfile            将swapfile文件添加为swap分区

# swapon /swapfile       使上面的操作生效

# free -h           检查是否生效(容量是否变大)

 

7. 磁盘接口

 

SAS:2.5英寸的磁盘接口,转速快,读写速度快     串行

    SATA 6Gb/s=6x1024/8=768MB/s

    这里指的是硬盘接口的速度,而非硬盘本身读写的速度

 

硬盘读写速度和转速等相关因素有关

    5400转的笔记本硬盘:50-90MB每秒

    7200转的台式机硬盘:90-190MB每秒

   

DAS 直挂式存储  direct access storage

    单台服务器

    如:服务器的硬盘,直接接入到服务器里

   

NAS 网络附加存储 network attched storage

    多个主机连接到同一个共享存储上

    如 NFS,SAMBA;但在工业应用中,使用的方式可能会有些修改

 

SAN 存储区域网络 storage area network

    两种 SAN

    FC-SAN:早期的 SAN,服务器与交换机的数据传输是通过光纤进行的,服务器把 SCSI

    指令传输到存储设备上,不能走普通 LAN 网的 IP 协议。

    IP-SAN:后期出现的 SAN,用 IP 协议封装的 SAN,可以完全走普通网络,因此叫做IP-SAN,最典型的就是热门的 ISCSI。  

    ISCSI:通过走以太网的 TCP/IP 网络网卡,网络交换机,网线都比较便宜;建网也方便,使用 3260 端口的服务

 

8.raid冗余磁盘阵列

多块硬盘组合阵列来使用,提高读写速度,空间大小,冗余。在生产环境中都是做硬件raid的。

 

raid level:级别仅仅代表磁盘组织方式不同,没有上下之分

组合raid要考虑:

    数据的可用性

    数据的读写速度

    磁盘利用率

 

raid 0  条带化(stripe)                

数据{1.2.3.4.5.6}写入

性能:读写提升

冗余(容错):无

空间利用率:100%

至少2块磁盘

raid 1 镜像(mirror)

数据{1.2.3.4.5.6}写入

性能:写性能下降,读性能提升

冗余(容错):有

空间利用率:50%

至少2块磁盘

raid 5 校验码(Check code)

数据{1.2.3.4.5.6}写入

性能:读写提升

冗余(容错):有

空间利用率:(n-1)/n

至少3块磁盘

raid 01 先做 raid 0 再做 raid 1

性能:读提升写下降

冗余(容错):有一定冗余

空间利用率:50%

至少4块磁盘

raid 10 先做 raid 1 再做 raid 0

性能:读写提升

冗余(容错):有

空间利用率:50%

至少4块磁盘

 

9. 安装RAID工具软件包 mdadm

 yum -y install mdadm*

 

10. 使用mdadm创建RAID0,1,5

 

格式:mdadm --create raid名称 --level=级别 --raid-devices=磁盘数量 磁盘1 磁盘2 磁盘3 磁盘N

创建RAID 0命令:

mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdvc

创建RAID 1命令:

mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde

创建RAID 5命令:

mdadm --create /dev/md5 --level=5 --raid-devices=4 /dev/sdf /dev/sdg /dev/sdh /dev/sdi

 

cat /proc/mdstat     #查看创建的raid组信息

类似以下信息:

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]

md5 : active raid5 sdi[4] sdh[2] sdg[1] sdf[0]

      3142656 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

md1 : active raid1 sde[1] sdd[0]

      1047552 blocks super 1.2 [2/2] [UU]

md0 : active raid0 sdc[1] sdb[0]

      2095104 blocks super 1.2 512k chunks

unused devices: <none>

 

11.使用mkfs.xfs格式化新创建的RAID015

mkfs.xfs /dev/md0

mkfs.xfs /dev/md1

mkfs.xfs /dev/md5

 

12. 使用mount挂载raid组0,1,5

创建三个目录:

mkdir -p /raid{0,1,5}

挂载磁盘:

mount /dev/md0 /raid0

mount /dev/md1 /raid1

mount /dev/md5 /raid5

 

 

 

 

 

 

 

posted @ 2019-08-30 14:26  Beyond_Bug  阅读(372)  评论(0)    收藏  举报