System-day2

硬盘分区

识别硬盘 --> 规划分区 --> 格式化 --> 挂载 --> 写入 / 读写数据

 

MBR    Master Boot Record

主引导记录模式,也称为 MSDOS 模式

硬盘的第一个扇区(512 字节)作为 MBR 扇区,用来记录引导程序和分区表

分区表记录只有 64 个字节,其中存储硬盘上每个分区的信息,一个分区记录需要 16 字节

此模式支持最多 4 个主分区、最大容量约 2.2TB

 

GPT    GUID Partition Table

全局唯一标识分区表

突破固定大小 64 字节表限制

最多可支持 128 个主分区,最大支持 18EB 磁盘

    1EB=1024PB=1024 X 1024TB

 

磁盘分区工具

fdisk    只支持 MSDOS 分区布局

fdisk -l /dev/sda    查看分区表

fdisk /dev/sda/dev/sda 进行分区

 

parted    支持 MSDOS\GPT 分区布局

parted /dev/sda print    查看分区表

parted /dev/sda/dev/sda 进行分区

 

parted

-help    获取帮助

-mktable msdos|gpt    建立指定模式分区表

-mkpart primary 文件系统类型 start end

        批定大小或百分比作为起始、结束位置

-print    查看分区表

-rm 序号    删除指定的分区

-quit    退出交互环境

 

当硬盘分区表更改以后

需要将分区表变化通知内核

 

partx -a /dev/sda

partprobe /dev/sda

reboot

 

例

fdisk /dev/sdb

 

Command (m for help): h

h: unknown command

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   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)

 

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xd59d5311

 

   Device Boot      Start         End      Blocks   Id  System

 

Command (m for help): n

Command action

   e   extended    扩展分区

   p   primary partition (1-4) 主分区

p

Partition number (1-4): 1

First cylinder (1-2610, default 1): 

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 1G

 

Command (m for help): p

 

Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xd59d5311

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1           1        8001   83  Linux

 

Command (m for help): w

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

 

例

parted /dev/sdb

 

[root@localhost ~]# parted /dev/sda p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sda: 21.5GB

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

Partition Table: msdos    分区方式为 MBR

 

Number  Start   End     Size    Type     File system     标志

 1      1049kB  211MB   210MB   primary  ext4            启动

 2      211MB   2308MB  2097MB  primary  linux-swap(v1)

 3      2308MB  21.5GB  19.2GB  primary  ext4

 

[root@localhost ~]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: msdos

 

Number  Start  End     Size    Type     File system  标志

 1      512B   1000MB  1000MB  primary

 

[root@localhost ~]# parted /dev/sdb mkpart p ext4 1G 3G

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

 

[root@localhost ~]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: msdos

 

Number  Start   End     Size    Type     File system  标志

 1      512B    1000MB  1000MB  primary

 2      1000MB  3000MB  2000MB  primary

 

(parted) mktable 

align-check  mkfs         mktable      quit         select       version

check        mklabel      move         rescue       set          检查

cp           mkpart       name         resize       toggle       

help         mkpartfs     print        rm           unit         

(parted) mktable 

新的磁盘标签类型?                                                        

aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun    

新的磁盘标签类型? gpt

警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will

be lost. Do you want to continue?

是 /Yes//No? yes  

 

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: gpt

 

Number  Start  End  Size  File system  Name  标志

 

或者 parted /dev/sdb mktable gpt 将 sdb 分区方式更改为 gpt

注:转换 GPT 或 MSDOS 都会丢失数据

 

检查此分区是否支持 ACL、有多少个 I 节点

[root@localhost ~]# tune2fs -l /dev/sda1 |grep acl    支持 ACL

Default mount options:    user_xattr acl

[root@localhost ~]# tune2fs -l /dev/sdb1 |grep acl    没有输出信息,不支持

[root@localhost ~]# 

 

[root@localhost ~]# tune2fs -l /dev/sdb1 |grep "Inode count"

Inode count:              61056

 

如何需要支持 ACL

在 /etc/fstab

/dev/sdb1       /test   ext4 defaults,acl 0 0

加一个 ACL

 

格式化工具

mkfs    make filesystem

文件系统 ext4

mkfs -t ext4 /dev/sda?

或 mkfs.ext4 /dev/sda?

 

文件系统 FAT32

mkfs -t vfat -F 32 /dev/sda?

或 mkfs.vfat -F 32 /dev/sda?

 

格式化交换分区

mkswap 分区设备

 

记用交换分区

swapon 分区设备

 

查看交换分区

swapon -s

 

关闭交换分区

swapoff 分区设备

 

利用文件创建 SWAP 空间

dd if= 源设备 of= 目标设备 bs= 块大小 count= 块数

 

创建 500M 文件

[root@localhost mnt]# dd if=/dev/zero of=/opt/swap.1 bs=1M count=500

记录了 500+0 的读入

记录了 500+0 的写出

524288000 字节 (524 MB) 已复制,16.1705 秒,32.4 MB/ 秒

 

-f 表示强制执行(force)

[root@localhost mnt]# mkswap -f /opt/swap.1 

Setting up swapspace version 1, size = 511996 KiB

no label, UUID=92324e76-a1d5-4b5a-9160-11b384ddd5e1

 

[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1

[root@localhost mnt]# swapon /opt/swap.1 

[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1

/opt/swap.1                             file5119920-2

[root@localhost mnt]# swapoff /opt/swap.1 

[root@localhost mnt]# swapon -s

FilenameTypeSizeUsedPriority

/dev/sda2                               partition20479920-1

 

EXT 分区命名

e2label 命令

e2label 设备名 [" 卷标名 "]

e2label /dev/sdb1 "test1"

 

[root@localhost ~]# e2label /dev/sdb1 没有则显示空

 

[root@localhost ~]# e2label /dev/sdb1 "test1"

[root@localhost ~]# e2label /dev/sdb1

test1

[root@localhost ~]# e2label /dev/sdb1 ""    删除卷标名

[root@localhost ~]# e2label /dev/sdb1 没有则显示空

 

查看设备的 UUID

blkid 命令    Block Identity

blkid 设备名

[root@localhost ~]# blkid 

/dev/sda1: UUID="f8364c60-0d36-4825-938a-596c4a36caed" TYPE="ext4" 

/dev/sda2: UUID="362e751f-73c4-4fd6-9eff-c2dbe185d92e" TYPE="swap" 

/dev/sda3: UUID="659f965c-49e9-4a78-b514-cc6d40734619" TYPE="ext4" 

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 

[root@localhost ~]# blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 

 

[root@localhost ~]# blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" 

[root@localhost ~]# e2label /dev/sdb1 "test1"

[root@localhost ~]# !b

blkid /dev/sdb1

/dev/sdb1: UUID="c01c3b74-fac2-43ab-b3a6-98923786740b" TYPE="ext4" LABEL="test1" 

 

查看 EXT 分区属性

tune2fs 命令

tune2fs -l 设备名

 

[root@localhost ~]# tune2fs -l /dev/sdb1

tune2fs 1.41.12 (17-May-2010)

Filesystem volume name:   test1

Last mounted on:          <not available>

Filesystem UUID:          c01c3b74-fac2-43ab-b3a6-98923786740b

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize

Filesystem flags:         signed_directory_hash 

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              2000

Block count:              8000

Reserved block count:     400

Free blocks:              6676

Free inodes:              1989

First block:              1

Block size:               1024

Fragment size:            1024

Reserved GDT blocks:      31

Blocks per group:         8192

Fragments per group:      8192

Inodes per group:         2000

Inode blocks per group:   250

Flex block group size:    16

Filesystem created:       Tue Aug  9 21:49:41 2016

Last mount time:          n/a

Last write time:          Tue Aug  9 21:53:01 2016

Mount count:              0

Maximum mount count:      36

Last checked:             Tue Aug  9 21:49:41 2016

Check interval:           15552000 (6 months)

Next check after:         Sun Feb  5 21:49:41 2017

Lifetime writes:          1401 kB

Reserved blocks uid:      0 (user root)

Reserved blocks gid:      0 (group root)

First inode:              11

Inode size:          128

Journal inode:            8

Default directory hash:   half_md4

Directory Hash Seed:      909a22e7-58cb-488f-bded-c7c5b7704015

Journal backup:           inode blocks

 

挂载文件系统

mount 命令

mount [选项] 设备名 挂载点

-a:加载所有 fstab 已配置的文件系统

-t:指定文件系统类型

-o:指定挂载参数————————————————————————

        ro/rw:只读 / 读写

        acl/noacl:启用 / 禁用 ACL

        exec/noexec:打开 / 关闭执行权

        suid/nosuid:启用 / 禁用 suid 和 sgid

        remount:重新挂载

        defaults:rw,suid,dev,exec,auto,nouser,async

        ————————————————————————

-L:通过卷标名挂载设备

-U:通过 UUID 挂载设备

 

ISO 镜像文件挂载到指定位置

mount -o loop linux.iso /mnt/cdrom

 

df 命令 disk usage of file system

df 选项 文件

-h 使用容量单位

-T 列出文件系统系统

 

[root@localhost mnt]# df -h

文件系统      容量  已用  可用 已用 %% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

tmpfs                 112M     0  112M   0% /dev/shm

/dev/sda1             194M   29M  156M  16% /boot

[root@localhost mnt]# df -T

文件系统    类型         1K- 块      已用      可用 已用 % 挂载点

/dev/sda3     ext4    18423556   3658768  13828904  21% /

tmpfs        tmpfs      114220         0    114220   0% /dev/shm

/dev/sda1     ext4      198337     28929    159168  16% /boot

 

卸载文件系统

umount

umount 设备名 | 挂载点

-a 卸载所有已挂载的非伪文件系统

 

开机自动挂载配置文件

/etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Tue Aug  9 00:02:13 2016

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=659f965c-49e9-4a78-b514-cc6d40734619 /                       ext4    defaults

1 1

UUID=f8364c60-0d36-4825-938a-596c4a36caed /boot                   ext4    defaults

1 2

UUID=362e751f-73c4-4fd6-9eff-c2dbe185d92e swap                    swap    defaults

0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

~                                                                              

备份标记和检测顺序为 0 则不需要

以空格或制表位分隔 6 列

设备文件    挂载点    文件系统类型    挂载参数    备份标记    检测顺序

 

触发挂载

autofs 服务

按需访问 机制

只要访问挂载点就会触发响应,自动挂载指定设备

闲置超过时限(默认为 5 分钟),会自动卸载

 

主配置文件 /etc/auto.master

监控点目录    挂载配置文件的路径

挂载配置文件 /etc/auto.1 文件名可以自己定义

触发点子目录    挂载参数    :设备名

 

[root@localhost /]# grep -v '^#' /etc/auto.master ;echo ------------;grep -v '^#' /etc/auto.1

/misc/etc/auto.misc

/net-hosts

+auto.master

 

/test /etc/auto.1

test    -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

表示访问 /test/test    才能触发

 

[root@localhost /]# ll /test/

总用量 0

 

[root@localhost /]# /etc/init.d/autofs start

正在启动 automount:automount: program is already running.

                                                           [确定]

 

 

[root@localhost ~]# mount |tail -1

/dev/sr0 on /test/test type iso9660 (ro,nosuid,nodev)

 

 

LVM 逻辑卷 Logical Volume Manager

pvcreate 设备名...
vgcreate 卷组名 物理卷...
lvcreate -L 大小 -n 逻辑卷名 卷组名
 

先 PV---- 在 VG---- 在 LV---- 格式化 LV--- 挂载

PV     Physical Volume 物理卷

    物理分区,或整个物理磁盘

    由 PE    Physical Extent, 基本单元    组成

VG    Volume Group 卷组

     一个或多个物理卷组的逻辑整体

LV    Logical Volume 逻辑卷

    从卷组中分割出的地块逻辑存储空间

    可通过格式化建立文件系统

 

[root@localhost /]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  标志

 1      17.4kB  1000MB  1000MB  ext4

 

# parted /dev/sdb set 1 lvm on    set:添加标志,1 分区编号,lvm 标志,on 开启

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

 

[root@localhost /]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  标志

 1      17.4kB  1000MB  1000MB  ext4               lvm

 

[root@localhost /]# parted /dev/sdb set 1 lvm off

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

 

[root@localhost /]# parted /dev/sdb p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  标志

 1      17.4kB  1000MB  1000MB  ext4

 

Number  Start   End     Size    File system  Name  标志

 1      17.4kB  1000MB  1000MB  ext4               lvm

 2      1000MB  3000MB  2000MB  ext4         name  lvm

 3      3000MB  5000MB  2000MB               name  lvm    文件类型没有,因为没有格式化

 

[root@localhost /]# pvs

[root@localhost /]# pvscan 

  No matching physical volumes found

[root@localhost /]# ll /dev/sdb*

brw-rw----. 1 root disk 8, 16 8 月  10 00:19 /dev/sdb

brw-rw----. 1 root disk 8, 17 8 月  10 00:19 /dev/sdb1

brw-rw----. 1 root disk 8, 18 8 月  10 00:19 /dev/sdb2

brw-rw----. 1 root disk 8, 19 8 月  10 00:18 /dev/sdb3

 

忘记可以 man 下查下命令格式

man pvcreate

 

创建 pv

[root@localhost /]# pvcreate /dev/sdb[1-3]

  Physical volume "/dev/sdb1" successfully created

  Physical volume "/dev/sdb2" successfully created

  Physical volume "/dev/sdb3" successfully created

 

[root@localhost /]# pvs

  PV         VG    Fmt  Attr PSize   PFree  

  /dev/sdb1  my_vg lvm2 a--  952.00m 952.00m

  /dev/sdb2  my_vg lvm2 a--    1.86g   1.86g

  /dev/sdb3  my_vg lvm2 a--    1.86g   1.86g

 

创建 vg

[root@localhost /]# vgscan

  Reading all physical volumes.  This may take a while...

  No volume groups found

 

[root@localhost /]# vgcreate my-vg /dev/sdb1 

  Volume group "my-vg" successfully created

 

[root@localhost /]# vgs

  VG    #PV #LV #SN Attr   VSize   VFree  

  my-vg   1   0   0 wz--n- 952.00m 952.00m

 

创建 lv

[root@localhost /]# lvcreate -L 100M -n my-lv my-vg

  Logical volume "my-lv" created

[root@localhost /]# lvs

  LV    VG    Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-a---- 100.00m   

 

[root@localhost /]# ll /dev/my-vg/my-lv 

lrwxrwxrwx. 1 root root 7 8 月  10 00:31 /dev/my-vg/my-lv -> ../dm-0

 

扩展逻辑卷容量

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用 %% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                       97M  5.6M   87M   7% /test

 

 

[root@localhost /]# lvextend -L +500 /dev/my-vg/my-lv 

  Extending logical volume my-lv to 600.00 MiB

  Logical volume my-lv successfully resized

[root@localhost /]# lvs

  LV    VG    Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-ao--- 600.00m                                             

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用 %% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                       97M  5.6M   87M   7% /test

[root@localhost /]# 

 

lv 扩容支持线上操作,但是扩展完成后通知内核新卷大小

lv 扩容要看 vg 的空间是否满足,不满足时扩容 vg

vg 扩容不够扩展 pv

pv 不够加硬盘

 

[root@localhost /]# resize2fs /dev/dm-0

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/dm-0 is mounted on /test; on-line resizing required

old desc_blocks = 1, new_desc_blocks = 3

Performing an on-line resize of /dev/dm-0 to 614400 (1k) blocks.

The filesystem on /dev/dm-0 is now 614400 blocks long.

 

文件系统    类型      容量  已用  可用 已用 %% 挂载点

/dev/sda3     ext4     18G  3.5G   14G  21% /

/dev/sda1     ext4    194M   29M  156M  16% /boot

tmpfs        tmpfs    112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

              ext4    582M  6.3M  546M   2% /test

 

vgcreate -s  pe 大小 卷组名 物理卷

lvcreate -l pe 个数 -n 逻辑名 卷组名

lvextend -L + 大小 /dev/ 卷组名 / 逻辑卷名  推荐这种

还有一种 lvextend -L 直接大小(等于之前的大小加上你要扩容的大小的总和) /dev/ 卷组名 / 逻辑卷名

 

PE 大小默认是 4M

[root@localhost /]# pvdisplay /dev/sdb1|grep 'PE'

  PE Size               4.00 MiB

  Total PE              238

  Free PE               0

  Allocated PE          238

 

vg 扩容

[root@localhost /]# vgextend my-vg /dev/sdb2 /dev/sdb3

  Volume group "my-vg" successfully extended

[root@localhost /]# vgs

  VG    #PV #LV #SN Attr   VSize VFree

  my-vg   3   1   0 wz--n- 4.65g 4.06g

 

[root@localhost /]# lvextend -L +2G /dev/my-vg/my-lv 

  Extending logical volume my-lv to 2.59 GiB

  Logical volume my-lv successfully resized

[root@localhost /]# lvs

  LV    VG    Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert

  my-lv my-vg -wi-ao--- 2.59g   

 

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用 %% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                      582M  6.3M  546M   2% /test

[root@localhost /]# fs

fsadm         fsck.cramfs   fsck.ext3     fsck.ext4dev  fsck.vfat     fstab-decode

fsck          fsck.ext2     fsck.ext4     fsck.msdos    fsfreeze      fstrim

[root@localhost /]# resize2fs  /dev/my-vg/my-lv 

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/my-vg/my-lv is mounted on /test; on-line resizing required

old desc_blocks = 3, new_desc_blocks = 11

Performing an on-line resize of /dev/my-vg/my-lv to 2711552 (1k) blocks.

The filesystem on /dev/my-vg/my-lv is now 2711552 blocks long.

 

[root@localhost /]# df -h

文件系统      容量  已用  可用 已用 %% 挂载点

/dev/sda3              18G  3.5G   14G  21% /

/dev/sda1             194M   29M  156M  16% /boot

tmpfs                 112M     0  112M   0% /dev/shm

/dev/mapper/my--vg-my--lv

                      2.6G  6.9M  2.4G   1% /test

[root@localhost /]# 

 

RAID

廉价冗余磁盘阵列

Redundant Arrays of Inexpensive Disks

有软 RAID 和硬 RAID

不同的 RAID 级别功能与特性也不同

 

RAID 0 条带模式

将一个文档分散存储到不同的磁盘

并行写入以提高效率

 

RAID 1 镜像模式

一个文档复制成多份,分别写入不同的磁盘

多份拷贝提高可靠性,效率无提升

数据有可靠性

 

RAID 5 高性价比模式

相当于 RAID 0 和 RAID 1

到少一块磁盘空间作为冗余

 

RAID 0+1/RAID 1+0

整合 RAID 0、1 优势

并行存取提高效率、镜像写入提高数据可靠性

RAID 0+1 与 RAID 1+0 相比 RAID 1+0 性能更强点

 

enter description here
enter description here

 

posted @ 2016-08-17 20:34  Final233  阅读(184)  评论(0编辑  收藏  举报