lsblk命令 MAJ:MIN 主:次 设备号
TYPE:块设备类型,比如disk磁盘,part分区,lvm逻辑卷,rom只读存储
1 2 3 4 5 6 $ lsblk -f # 查看磁盘分区格式,有格式才能挂载成功。 NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 └─sda2 ext4 9449ee1e-7cdb-4852-9c60-73959ce812c0 18.1G 93% / sdb
In the output of the lsblk command, nvme2n1 refers to a Non-Volatile Memory Express (NVMe) device. Here’s a breakdown of the naming convention:
nvme: This prefix indicates that the device is an NVMe storage device, which is a type of high-performance, solid-state drive (SSD) that connects directly to the motherboard via the PCIe bus.
fdisk命令 blkid命令 使用blkid命令对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。
分区已有文件系统 直接使用blkid可列出当前系统中所以已挂载文件系统的类型。(或者 check /etc/fstab
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 > blkid /dev/sdb: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="dc35a623-6a3e-f4fe-f9f7-05e102a9c7ec" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdc: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="7772d530-24d2-2064-29a3-9d61c0b6289e" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sda: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="683c1101-69b1-f2c6-586b-155fbda91846" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdd1: UUID="F51A-FBBA" TYPE="vfat" PARTUUID="f377e755-9c1e-41dd-b50b-cb50a095be4c" /dev/sdd2: UUID="3df43f90-d64c-4061-bbca-2614ecc57f34" TYPE="ext4" PARTUUID="c599a2f0-9888-4f86-88fb-a49b9cde4666" /dev/sdd3: UUID="f12ca879-4545-46b7-bb2e-bdcdf771cb96" TYPE="swap" PARTUUID="bb5ab1b6-f67b-46fc-aead-14b8b86972ad" /dev/sdd4: UUID="07fbfa2a-6b48-4423-9260-dc36080b42c4" TYPE="ext4" PARTUUID="6b4f7a39-1c0f-4fcf-a407-b31e469a3cdc" /dev/sdf: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="86ffe123-2c7f-f7f1-40a0-57a12982fe17" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdg: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="36a06a4f-c84e-0684-8997-2997a68de012" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdh: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="369a926d-1f63-f397-ba4e-3118ef2ecf1d" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sde: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="4dd3f6ca-1e73-2606-ec65-c98badcd77ad" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/md0p1: UUID="c960e42b-f321-482d-aed4-c90f29e77291" TYPE="ext4" PARTUUID="d0949a94-c6e4-4621-890b-8d3f2d70fe57" /dev/md0p2: UUID="addb8c13-8e34-4d8a-995b-101638f2dcbb" TYPE="ext4" PARTUUID="c6594348-58c5-49c2-9f40-82ce49653b7c" /dev/md0p3: UUID="3354846e-7bec-45fb-8b59-4c6d60340d0d" TYPE="ext4" PARTUUID="8012f7e0-7dfa-46c5-b748-ef04d68a31ed" /dev/md0p4: UUID="def8fb56-701e-4d6c-81d9-ecb765cc4d06" TYPE="ext4" PARTUUID="f6bb7944-fb1c-42de-af77-545c26303ad2" /dev/md0p5: UUID="2f0590a9-6490-4758-999f-bdb5ef5954db" TYPE="ext4" PARTUUID="bbfe02f4-6b6a-4eeb-bb58-92b8b14b0997"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 > blkid -o list device fs_type label mount point UUID ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ /dev/sdb linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sdc linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sda linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sdd1 vfat /boot/efi F51A-FBBA /dev/sdd2 ext4 / 3df43f90-d64c-4061-bbca-2614ecc57f34 /dev/sdd3 swap [SWAP] f12ca879-4545-46b7-bb2e-bdcdf771cb96 /dev/sdd4 ext4 /tmp 07fbfa2a-6b48-4423-9260-dc36080b42c4 /dev/sdf linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sdg linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sdh linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/sde linux_raid_member ubuntu-server:0 (not mounted) 2d900913-d0a4-4a15-7bd8-46dda015c95e /dev/md0p1 ext4 /home c960e42b-f321-482d-aed4-c90f29e77291 /dev/md0p2 ext4 /usr addb8c13-8e34-4d8a-995b-101638f2dcbb /dev/md0p3 ext4 /boot 3354846e-7bec-45fb-8b59-4c6d60340d0d /dev/md0p4 ext4 /var def8fb56-701e-4d6c-81d9-ecb765cc4d06 /dev/md0p5 ext4 /srv 2f0590a9-6490-4758-999f-bdb5ef5954db
UUID 帮助使用者唯一 的确定系统中的所有存储设备 ,不管它们是什么类型的。它可以标识DVD驱动器,USB存储设备以及你系统中的硬盘设备等。
使用原因包括:设备名并非总是不变的
df 命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 shaojiemike@brainiac1 ~/blockFrequency [08:02:54] > df -lh 文件系统 容量 已用 可用 已用% 挂载点 udev 94G 0 94G 0% /dev tmpfs 19G 4.3M 19G 1% /run /dev/sdd2 984G 12G 923G 2% / tmpfs 95G 88K 95G 1% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 95G 0 95G 0% /sys/fs/cgroup /dev/md0p3 20G 347M 19G 2% /boot /dev/sdd4 53G 319M 50G 1% /tmp /dev/md0p5 47G 53M 45G 1% /srv /dev/sdd1 511M 3.6M 508M 1% /boot/efi /dev/md0p4 590G 5.7G 554G 2% /var /dev/md0p1 6.5T 5.1T 1.2T 82% /home /dev/loop0 49M 49M 0 100% /snap/core18/2289 /dev/loop1 58M 58M 0 100% /snap/core20/1360 /dev/loop3 38M 38M 0 100% /snap/snapd/14982 /dev/loop4 38M 38M 0 100% /snap/snapd/15183 /dev/loop2 58M 58M 0 100% /snap/core20/1380 /dev/loop5 61M 61M 0 100% /snap/lxd/21843 /dev/loop7 49M 49M 0 100% /snap/core18/2349 /dev/loop6 62M 62M 0 100% /snap/lxd/22530 tmpfs 19G 0 19G 0% /run/user/1006 tmpfs 19G 0 19G 0% /run/user/1008 tmpfs 19G 0 19G 0% /run/user/1005
snap的机制 一种新的安装包管理方式 。使用snapcraft
将软件打包成snap格式的打包工具集。
1 2 3 4 5 6 7 8 9 10 11 12 13 +-----------+ +------------+ +------------+ | Developer +------>| Snapcraft +----->| Snap Store | +-----------+ +------------+ +-----+------+ | update v +-----------+ +------------+ +------------+ | End User +------>| Snap +----->| Snapd | +-----------+ +-----+------+ +-----+------+ | containerize | v | +------------+ | | Snaps |<-----------+ manage +------------+
core snap的每个版本软件会,占用一个/dev/loop
1 2 /snap/core18 代表ubuntu 18版本的软件所运行的环境 /snap/core20 代表ubuntu 20版本的软件所运行的环境
Snap应用运行在以Ubuntu 为核心的容器里,与各个发行版做到了解耦。因此Snap应用的开发者很开心了, 只需保证自己应用在[Ubuntu Core]欢快运行即可,不需要考虑其他发行版的适配。
snapd Snap应用由snapd
守护进程管理。snapd每天会去Snap Store查本地Snap应 用有没有可用更新,如果有,就把更新拿下来,应用到当前Snap应用上。自动更新不可关闭,但是可以设置延迟60天。
lxc/lxd lxc
是Linux Container的简写,它是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源;它不需要提供指令解释机制,没有全虚拟化的复杂性,相当于C++中的NameSpace。lxc
容器能有效地把操作系统管理的资源划分到不同的组中,并能在不同的组之间平衡有冲突的资源使用需求,因此它可以在单一的主机节点上同时执行多个相互隔离的容器。
lxd
是基于lxc
构筑的容器管理进程,提供镜像、网络、存储、以及容器等能力。 大家可能有个疑问,为什么不用docker容器呢?docker容器原先也是我的首选,但实际操作过程中发现snap包安装所需要的squashfs文件系统在docker中无法mount,会出现如下错误:
1 system does not fully support snapd: cannot mount squashfs imag
tmpfs /dev/shm
下的tmpfs是内存的一半,是一个临时文件系统,驻留在内存中,所以/dev/shm/这个目录不在硬盘上,而是在内存里。因为是在内存里,所以读写非常快,可以提供较高的访问速度。
/sys/fs/cgroup
是systemd在代码里自动挂载的。cgroups(Control Groups) 是 linux 内核提供的一种机制,这种机制可以根据需求把一系列系统任务及其子任务整合(或分隔)到按资源划分等级的不同组内,从而为系统资源管理提供一个统一的框架。简单说,cgroups 可以限制、记录任务组所使用的物理资源。
/run/user
是每个login的用户所需的一些数据
1 2 3 4 5 6 > ls /run/user -l 总用量 0 drwx------ 7 qcjiang qcjiang 360 Jul 11 14:54 1005 drwx------ 7 shaojiemike shaojiemike 780 Jul 11 01:10 1006 drwx------ 7 zwcao zwcao 360 Jul 9 15:48 1008 drwx------ 7 udfrt udfrt 200 Jul 11 16:03 1010
利用tmpfs这个特性可以用来提高服务器性能,把一些对读写性能要求较高,但是数据又可以丢失的这样的数据保存在/dev/shm中,来提高访问速度。
tmpfs用途还是较广的,Linux中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点来提升系统性能。比如可以用来放squid程序的缓存文件。
1 2 3 4 5 6 mount -o remount,size=777M tmpfs /dev/shm vim /etc/fstab tmpfs /dev/shm tmpfs defaults,size=777M 0 0
/etc/fstab 解析 /etc/fstab 是专门用配置挂载硬盘的文件
语法为:
1 2 3 4 5 6 7 8 [Device] [Mount Point] [File System Type] [Options] [Dump] [Pass] [Device] 包含文件系统的device或者partition [Mount Point] 挂载的目录,从该目录可以访问设备/分区的内容(注意:swap没有装入点) [File System Type] 文件系统类型 [Options] mount的选项,默认的defaults [Dump] 是否开启备份,0 来表示不备份这个区 [Pass] fsck是否会check该区域,0表示不检查。fsck (文件系统检查)是一种命令行程序,可让您在一个或多个Linux文件系统上执行一致性检查和交互式修复。 它用于检查指定类型文件系统。 在系统无法启动或无法安装分区的情况下,可以使用 fsck 命令修复损坏的文件系统。
Device device 有两种表示方式,可以用/dev/xdx 之类的location 或者 硬件的UUID 来表示,硬件的UUID 可以用blkid
来查询
对于uuid
1 2 3 4 5 /dev/disk/by-uuid/3df43f90-d64c-4061-bbca-2614ecc57f34 / ext4 defaults 0 0 > blkid |grep 3df /dev/sdd2: UUID="3df43f90-d64c-4061-bbca-2614ecc57f34" TYPE="ext4" PARTUUID="c599a2f0-9888-4f86-88fb-a49b9cde4666"
对于id
1 2 3 4 5 6 7 8 9 10 /dev/disk/by-id/md-uuid-2d900913:d0a44a15:7bd846dd:a015c95e-part1 /home ext4 defaults 0 0 /dev/disk/by-id/md-uuid-2d900913:d0a44a15:7bd846dd:a015c95e-part2 /usr ext4 defaults 0 0 /dev/disk/by-id/md-uuid-2d900913:d0a44a15:7bd846dd:a015c95e-part3 /boot ext4 defaults 0 0 /dev/disk/by-id/md-uuid-2d900913:d0a44a15:7bd846dd:a015c95e-part4 /var ext4 defaults 0 0 /dev/disk/by-id/md-uuid-2d900913:d0a44a15:7bd846dd:a015c95e-part5 /srv ext4 defaults 0 0
1 2 3 4 5 6 7 8 > blkid |grep a015c95e /dev/sdb: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="dc35a623-6a3e-f4fe-f9f7-05e102a9c7ec" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdc: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="7772d530-24d2-2064-29a3-9d61c0b6289e" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sda: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="683c1101-69b1-f2c6-586b-155fbda91846" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdf: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="86ffe123-2c7f-f7f1-40a0-57a12982fe17" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdg: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="36a06a4f-c84e-0684-8997-2997a68de012" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sdh: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="369a926d-1f63-f397-ba4e-3118ef2ecf1d" LABEL="ubuntu-server:0" TYPE="linux_raid_member" /dev/sde: UUID="2d900913-d0a4-4a15-7bd8-46dda015c95e" UUID_SUB="4dd3f6ca-1e73-2606-ec65-c98badcd77ad" LABEL="ubuntu-server:0" TYPE="linux_raid_member"
这里可以看到这7个硬盘的UUID是一样的,说明属于同一个RAID文件系统卷,但是子卷UUID_SUB是不一样的
问题:
为什么8块盘里/dev/sdd1
第四块被拆成了4份
blkid里的
UUID_SUB 什么意思
/dev/md0p1
好像和GPT分区有关
为什么device里 /dev/md0p1 没和blkid的对应上
File System Type auto, vfat( for FAT partition), ntfs or ntfs-3g( for NTFS partition), ext4 or ext3 or ext2 or jfs, udf or iso9660 ( for CD/DVD), swap
磁盘分区 MBR vs GPT 当服务器插入一块硬盘,如果我们想要使用该硬盘,需要先使用磁盘分区管理工具进行磁盘分区,然后格式化分区,把分区挂载到目录
上,才可以正式使用该硬盘存储文件。磁盘分区管理工具有很多,本文主要介绍fdisk,gdisk,parted,并进行比较。
判断分区是GPT还是MBR fdisk -l
和gdisk -l /dev/sda
都可以,下面介绍另一种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 sudo parted -l型号:TOSHIBA AL15SEB120N (scsi) 磁盘 /dev/sdd: 1200GB 扇区大小 (逻辑/物理):512B/512B 分区表:gpt 磁盘标志: 编号 起始点 结束点 大小 文件系统 名称 标志 1 1049kB 538MB 537MB fat32 启动, EFI 启动 2 538MB 1074GB 1074GB ext4 3 1074GB 1143GB 68.7GB linux-swap(v1) 交换 4 1143GB 1200GB 57.2GB ext4 型号:Linux 软件 RAID 数组 (md) 磁盘 /dev/md0: 8401GB 扇区大小 (逻辑/物理):512B/512B 分区表:gpt 磁盘标志: 编号 起始点 结束点 大小 文件系统 名称 标志 1 1049kB 7147GB 7147GB ext4 2 7147GB 7684GB 537GB ext4 3 7684GB 7705GB 21.5GB ext4 4 7705GB 8349GB 644GB ext4 5 8349GB 8401GB 51.3GB ext4
可以看出上面的普通硬盘和RAID0都是GPT。#显示Partition Table: msdos,则是MBR分区
MBR(Master Boot Record) 是传统的分区机制,应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式),很多Server服务器即支持BIOS也支持EFI的引导方式。MBR只支持不超过2TB的硬盘。
MBR分区分为:
主分区(一块硬盘最多只能创建4个主分区)、
扩展分区(一个扩展分区会占用一个主分区的位置)、
逻辑分区(逻辑分区是基于扩展分区创建出来的,
先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;
也就是说我们要使用逻辑分区,必须先要创建扩展分区,扩展分区的空间是不能被直接使用的,
我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用)。
在Linux上使用扩展分区和逻辑分区最多可以创建15个分区;
GPT(GUID Partition Table)分区 解决了MBR的很多缺点; 1. 支持超过2TB的磁盘; 2. 向后兼容MBR; 3. GPT分区只支持64位操作系统;
fdisk对/dev/sdb硬盘进行分区 必须 先取消挂载,取消挂载后分区。不然分区结果重启后会消失,文件全没了。
创建一个主分区,一个扩展分区,其中扩展分区包含两个逻辑分区。
1 2 3 lsblk sdb 8:16 0 1G 0 disk └─sdb1 8:17 0 200M 0 part
sdb这块磁盘大小为1G。而且已有分区sdb1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 p d p Command (m for help ): n Partition type : p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): First sector (2048-2097151, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M Partition 1 of type Linux and of size 50 MiB is set Command (m for help ): n Partition type : p primary (1 primary, 0 extended, 3 free) e extended Select (default p): e Partition number (2-4, default 2): First sector (104448-2097151, default 104448): Using default value 104448 Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): +500M Partition 2 of type Extended and of size 500 MiB is set Command (m for help ): n Partition type : p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 5 First sector (106496-1128447, default 106496): Using default value 106496 Last sector, +sectors or +size{K,M,G} (106496-1128447, default 1128447): +200M Partition 5 of type Linux and of size 200 MiB is set Command (m for help ): n Partition type : p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5) Select (default p): l Adding logical partition 6 First sector (518144-1128447, default 518144): Using default value 518144 Last sector, +sectors or +size{K,M,G} (518144-1128447, default 1128447): Using default value 1128447 Partition 6 of type Linux and of size 298 MiB is set Command (m for help ): p ... Disk label type : dos Device Boot Start End Blocks Id System /dev/sdb1 2048 104447 51200 83 Linux /dev/sdb2 104448 1128447 512000 5 Extended /dev/sdb5 106496 516095 204800 83 Linux /dev/sdb6 518144 1128447 305152 83 Linux Command (m for help ): w
1 2 3 4 5 6 7 [root@node5 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 1G 0 disk ├─sdb1 8:17 0 50M 0 part ├─sdb2 8:18 0 1K 0 part ├─sdb5 8:21 0 200M 0 part └─sdb6 8:22 0 298M 0 part
格式化分区 把/dev/sdb5格式化成ext4文件系统[root@node5 ~]# mkfs.ext4 /dev/sdb5
挂载分区 1 2 mkdir /sdb5mount /dev/sdb5 /sdb5
设置开机自动挂载分区 磁盘分区使用mount手动挂载之后,还需要把挂载信息写入/etc/fstab
文件中,不然重启之后,需要重新挂载。
RAID - mdadm mdadm是一个用于创建、管理、监控RAID设备的工具,它使用linux中的md驱动。mdadm程序是一个独立的程序,能完成所有软件RAID的管理功能。常见功能如下:
mdadm –create device options…
Create a new array from unused devices.
mdadm –manage device options…
make changes to an existing array.
mdadm –misc options… devices
report on or modify various md related devices.
配置文件 配置文件,默认是”/etc/mdadm.conf”或者是”/etc/mdadm/mdadm.conf”
1 2 3 > cat /etc/mdadm/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=ubuntu-server:0 UUID=2d900913:d0a44a15:7bd846dd:a015c95e MAILADDR root
–metadata=
定义组件设备上超级块的类型。对于–create,默认是0.90。
0
,0.90
: 限制一个RAID中的设备数为28个,限制组件设备大小为2TB
1
,1.0
,1.1
,1.2
:不同的子版本号标识在不同的地方存储超级块。1.0在设备的结尾,1.1在设备的开头,1.2在设备的4K处。
MAILADDR
使用monitor模式(同时也使–scan选项)时,警报事件发送到的Email地址。
sudo mdadm -Ds > /etc/mdadm/mdadm.conf
把查询出来的 RAID 信息写到 mdadm.conf 中
-s 或 –scan 扫描 RAID 设备;-D 或 –detail 查看 RAID 的详细信息
查看当前RAID 1 2 3 4 5 6 > cat /proc/mdstat Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdf[4] sde[3] sdh[6] sdg[5] sda[0] sdc[2] sdb[1] 8203865600 blocks super 1.2 512k chunks unused devices: <none>
RAID0的搭建 猜测命令
1 mdadm –create /dev/md0 –chunk=512 –metadata=1.2 –level=0 –raid-devices=7 /dev/sda /dev/sdb /dev/sdc /dev/sde /dev/sdf /dev/sdg /dev/sdh
说明:使用7块创建RAID0,条带大小是512KB。
创建完之后
1 2 3 > lsblk -l md0 9:0 0 7.7T 0 raid0 md0p1 259:0 0 7.7T 0 md
1 2 3 4 5 fdisk /dev/md0 mount /dev/md0p1 /home/ mount /dev/md0p2 /usr/ mount /dev/md0p3 /boot/ ...
1 2 3 4 5 6 7 > lsblk -l md0 9:0 0 7.7T 0 raid0 md0p1 259:0 0 6.5T 0 part /home md0p2 259:1 0 500G 0 part /usr md0p3 259:2 0 20G 0 part /boot md0p4 259:3 0 600G 0 part /var md0p5 259:4 0 47.8G 0 part /srv
vi /etc/fstab
#设置开机自动挂载
扩容,添加硬盘 增大RAID 的大小涉及按给定顺序执行下列任务:
增加所有组成 RAID 的所有分区的大小,
增加 RAID 本身的大小,
最后增加文件系统的大小。
第一步:
1 mdadm /dev/md0 --add /dev/sdc1
说明:给md0增加热备盘sdc1。运行cat /proc/mdstat
等到 RAID 同步并一致,然后再继续下一个分区。
第二步: RAID 阵列配置将继续使用原始阵列大小,直到您强制其了解新的可用空间。您可以为 RAID 指定大小或使用最大可用空间。
查看大小
1 sudo mdadm -D /dev/md0 | grep -e "Array Size" -e "Dev Size"
将RAID大小增加到最大可用大小
1 sudo mdadm --grow /dev/md0 -z max
第三步: 不确定
更改 Ext2、Ext3 或 Ext4 文件系统的大小(先查看md0分区大小)
先fdisk删除part1分区,新建同名(同分区标号)的分区,First cylinder起始点相同,通过改变终点为最大值来扩容。
将文件系统大小扩展为名为 /dev/md0 的设备的最大可用大小 ,请输入
1 2 3 > sudo resize2fs /dev/md0p1 resize2fs 1.45.5 (07-Jan-2020) 文件系统已经为 1744830464 个块(每块 4k)。无需进一步处理!
如果未指定大小参数,大小将默认为该分区的大小。
loop机制 Loop设备是一种块设备,但是它并不指向硬盘或者光驱,而是指向一个文件块或者另一种块设备。
回环设备( ‘loopback device’)允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为 disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)回环设备允许你这样使用一个普通文件。
应用 将一个Loop设备指向一个文件系统文件,比如iso文件,紧接着就可以通过mount挂载该loop设备到主文件系统的一个目录下了,我们就可以正常访问该镜像中的内容,就像访问一个文件系统一样。
简单使用 losetup -a
列出已使用的。
loop设备映射或者指向一个文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 dd if =/dev/zeroof=/var/loop.img bs=1M count=10240losetup /dev/loop0 /var/loop.img mkdir /myloopdevmount /dev/loop0 /myloopdev umount /myloopdev losetup –d /dev/loop0
mount 硬盘 实际操作 物理挂盘 注意,推进插入的时候把卡扣打开
命令行处理 1 2 3 fdisk -l lsblk sudo reboot
还是找不到? 还是8块。
猜测:盘坏了吗?
额外找了其他类型的盘,还有160GB的固态插上。确实是四块坏盘。换了借口也无法识别。
总算整了5块
1 2 3 4 5 6 7 8 9 10 11 sdi 8:128 0 931.5G 0 disk └─sdi1 8:129 0 931.5G 0 part sdj 8:144 0 149.1G 0 disk ├─sdj1 8:145 0 512M 0 part └─sdj2 8:146 0 148.6G 0 part sdk 8:160 0 1.8T 0 disk └─sdk1 8:161 0 1.8T 0 part sdl 8:176 0 1.8T 0 disk └─sdl1 8:177 0 1.8T 0 part sdm 8:192 0 1.8T 0 disk └─sdm1 8:193 0 1.8T 0 part
尝试一: RAID0扩容 那sdk为例。
1 2 3 4 > sudo fdisk /dev/sdk > sudo mdadm /dev/md0 --add /dev/sdk mdadm: add new device failed for /dev/sdk as 7: Invalid argument
尝试分区后add分区
1 2 > sudo mdadm /dev/md0 --add /dev/sdk1 mdadm: add new device failed for /dev/sdk1 as 7: Invalid argument
第二种 :
1 mdadm --grow /dev/md0 --level=0 --raid-devices=8 --add /dev/sdk
理论上这样的,但是要reshape,而且和dev.raid.speed_limit_max
速度有关。我不确定会不会丢失资料,所以没尝试。
所以没有扩容
尝试二: 普通挂载 先格式化各个分区
1 2 3 4 5 > blkid -o list /dev/sdi1 ext4 (not mounted) /dev/sdl1 LVM2_member (not mounted) /dev/sdm1 LVM2_member (not mounted) /dev/sdk1 LVM2_member (not mounted)
sdi/l/m/k 全部格式化为ext4。blkid -o list
不是实时的。挂载后通过df -Th
查看
1 2 sudo mkfs.ext4 /dev/sdk1 sudo mount /dev/sdk1 /addDisk/DiskNo4
修改权限,大家都可以访问(直接777算了
1 sudo chmod -R ogu+r+w+X /addDisk
配置开机启动,blkid -o list
获得uuid
1 2 3 4 /dev/sdk1 ext4 (not mounted) ac862e68-9c6f-424a-b4ec-e44e62f7a330 /dev/sdj1 ext4 (not mounted) 8258b393-2e8e-41d1-9b84-0a7f88986443 /dev/sdl1 ext4 (not mounted) 5c2e1324-ecc5-40dd-a668-4ec682065d9f /dev/sdi1 ext4 (not mounted) 0ae289c5-51f7-4ef2-a07c-6ec8d123e065
修改/etc/fstab
1 2 3 4 5 6 7 8 /dev/disk/by-uuid/0ae289c5-51f7-4ef2-a07c-6ec8d123e065 /addDisk/DiskNo1 ext4 defaults 0 0 /dev/disk/by-uuid/5c2e1324-ecc5-40dd-a668-4ec682065d9f /addDisk/DiskNo2 ext4 defaults 0 0 /dev/disk/by-uuid/8258b393-2e8e-41d1-9b84-0a7f88986443 /addDisk/DiskNo3 ext4 defaults 0 0 /dev/disk/by-uuid/ac862e68-9c6f-424a-b4ec-e44e62f7a330 /addDisk/DiskNo4 ext4 defaults 0 0
COW 文件系统 USB启动的系统,会挂载在COPY-ON-WRITE
1 2 3 4 5 6 7 ubuntu@ubuntu:/dev$ df -lh Filesystem Size Used Avail Use% Mounted on udev 126G 0 126G 0% /dev tmpfs 26G 3.0M 26G 1% /run /dev/sdc1 29G 2.1G 27G 8% /cdrom -- USB启动的设备 /dev/loop0 2.0G 2.0G 0 100% /rofs /cow 126G 209M 126G 1% /
需要进一步的研究学习
查找未挂载的盘 lsblk
判断硬盘好坏,是否坏道
检测坏块sudo badblocks -v /dev/sda > badsectors.txt
综合评价sudo smartctl -H /dev/sda10
格式化硬盘
挂载新分区
查看已有盘挂载的分区
如何挂载已有分区
遇到的问题 暂无
开题缘由、总结、反思、吐槽~~ 参考文献 https://forum.ubuntu.org.cn/viewtopic.php?t=487421
https://bbs.huaweicloud.com/blogs/197847
https://blog.csdn.net/dangelzjj/article/details/104200396
https://www.cnblogs.com/renshengdezheli/p/13941563.html
https://linux.cn/article-7961-1.html