lvm + raid(逻辑磁盘+阵列)创建删除恢复 for linux

news2024/11/17 20:03:30

本教程适用于linux
lvm为逻辑磁盘,raid为阵列,两种技术可以单独使用也可以搭配使用
2023.9.3更新

前三节是操作命令和基础知识,后面是实操。

一、存储硬件查看相关命令

硬盘分区相关操作在后面用的到,可以先略过,有需要了再回来查

(一)查看

1.查看所有存储硬件详细信息

fdisk -l

2.查看文件系统

df -h

3.查看硬件挂载情况

lsblk

4.硬盘温度、通电时间等信息

查看这篇详细说明:linux查看硬盘详细信息

(二)新建分区和格式化

使用fdisk -l获取所有连接的硬盘,比如要在/dev/sde这个盘新建分区,挂载到/cloud目录(之前没有这个目录)
新建ext4文件系统分区

fdisk /dev/sde

n->回车->p(查看分区)->w(保存)->q(退出)

mkfs.ext4 /dev/sde1
mkfs -t ext4 /dev/sde1

新建目录

mkdir /cloud

将目录和硬盘关联

mount /dev/sde1 /cloud

(三)开机挂载

linux非桌面版本,新加入的磁盘,如果不设置挂载,重启后会失效
使用磁盘的uuid进行挂载,不要用/dev/xxx进行挂载,否则部分情况重启可能会串盘
使用fdisk -l获取硬盘的uuid

vi /etc/fstab

比如将5607a174-cfb3-476f-b509-a0e2e5f9654b挂载到/cloud下,加入这条信息

UUID=5607a174-cfb3-476f-b509-a0e2e5f9654b /cloud            ext4    defaults        0       2

(四)删除分区

比如要删除/dev/sde1这个分区,这个分区挂载在/cloud目录
卸载目录

umount /cloud

删除

fdisk /dev/sde1

d->回车->w(可能需要删除多次)

二、raid讲解和基本命令

具体案例详细操作见四

(一)说明

(二)依赖软件安装

apt-get install mdadm

dnf install mdadm

(三)命令

1.禁用raid

禁用/dev/md0

mdadm -S /dev/md0

三、lvm讲解和命令

LVM如果其中的一个盘坏了,其它的还是不受影响的,并不是一个坏了全部都坏了

具体案例详细操作见四

(一)说明

1.物理硬件

一个具体的硬盘,由于linux中每个硬件都是一个“文件”,在系统层面,形如是/dev/sda

2.物理卷PV (physical volume)

可以是一个硬盘分区或者一个组好的raid

3.卷组VG(Volume Group)

一个或多个物理卷组成一个卷组

4.逻辑卷LV(logical volume)

在卷组上的分区

(二)依赖软件安装

如果缺失这个软件,已有的lvm也无法正常运行(假如无意之中卸载了)

apt-get install lvm2

dnf install lvm2

(三)命令

lvm在linux中是默认有的,最近几年的版本在安装系统时也推荐使用lvm

1.查看类相关命令

查看物理卷PV

pvdisplay

查看卷组VG

vgdisplay

查看逻辑卷lv

lvdisplay

查看逻辑卷lv挂载状态

lvscan

2.创建类相关命令

创建物理卷PV

pvcreate /dev/sdc1

创建卷组VG

3.卸载类相关命令

``

三、具体应用-创建

(一)raid0-并行-追求速度

1.说明

这种情况下一个块硬盘的损坏会导致数据的丢失,不同容量的组raid0会按照最小的那块计算容量,建议使用容量一致的硬盘。

2.优缺点

优点:速度快,相当于并行
缺点:坏一个盘,整体数据都无法直接使用

3.实操

下面操作将/dev/sda /dev/sdc组成一个raid0,组合后的raid叫/dev/md0

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdc

查看创建结果,能输出结果说明可以

cat /proc/mdstat

(二)raid1-镜像-安全

1.说明

这种情况下组合的raid只会有最小的那块盘的容量,一般选用一样容量的硬盘。

2.优缺点

优点: 除非两个盘同时坏,否则数据完整,如果两块盘同时坏,但是没有坏在一个地方,可以恢复,数据仍然在。就是说除非两块盘同时坏在一个地方,且无法恢复,而这块丢失的数据又是需要的情况下,数据才会丢失。
缺点: 速度相对于一个盘略微降低,空间利用率最大50%(两块盘一样大)

3.实操

下面操作将/dev/sda /dev/sdc组成一个raid1,组合后的raid叫/dev/md1

mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda /dev/sdc

查看创建结果,能输出结果说明可以

cat /proc/mdstat

(三)raid10-速度和安全性

1.思路

相当于每2块组成一个镜像(raid1),然后两个raid1再组成raid0
(还有一种是raid01,两块盘组成raid0,然后两个raid0组成raid1,这种方法继承了raid0和raid1的缺点,不推荐使用raid01,只推荐raid10)

2.优缺点:

优点:速度快且安全
缺点:硬盘利用率最大为50%

3.实操

假设4块硬盘
先创建两个raid1
/dev/sda 和 /dev/sdb组 /dev/mda
/dev/sdc 和 /dev/sdd组 /dev/mdb

mdadm --create --verbose /dev/mda --level=1 --raid-devices=2 /dev/sda /dev/sdb
mdadm --create --verbose /dev/mdb --level=1 --raid-devices=2 /dev/sdc /dev/sdd

再创建一个raid0

mdadm --create --verbose /dev/md10 --level=0 --raid-devices=2 /dev/mda /dev/mdb

最后组合的是/dev/md10,在这个raid上分区格式化即可(操作方法在上面,看目录找)

(四)灵活扩容且安全(raid1+lvm)

1.思路

每两块硬盘组一个raid1镜像,多个raid1组一个lvm,可以只用2块,然后后期扩容,这样最后可以在系统层面只是一个分区。对于重要数据,强烈推荐使用这种方法

2.优缺点

优点:灵活扩容且安全
缺点:硬盘利用率为50%

3.实操

/dev/sda 和 /dev/sdb组 /dev/mda
/dev/sdc 和 /dev/sdd组 /dev/mdb
然后2个raid1组lvm,最后格式化,挂载到/mirror目录

先组2个raid1

mdadm --create --verbose /dev/mda --level=1 --raid-devices=2 /dev/sda /dev/sdb
mdadm --create --verbose /dev/mdb --level=1 --raid-devices=2 /dev/sdc /dev/sdd

2个raid1组lvm

2个raid1都先创建pv

pvcreate /dev/mda
pvcreate /dev/mdb

创建vg,名称为GroupMirror

vgcreate GroupMirror /dev/mda /dev/mdb

激活

vgchange -a y GroupMirror
lvcreate -l 100%FREE -n mirror_data GroupMirror

注意大小写,小写-l 可以写比例,大写是具体值

mkfs.ext4 /dev/GroupMirror/mirror_data
mkdir /mirror && mount -t ext4 /dev/GroupMirror/mirror_data /mirror 

(五)raid5

以后更新

(六)raid6

以后更新

四、具体应用-调整

(一)LVM卷组扩容

lvm可以用一个物理磁盘或者一个raid作为基础,建立lvm。
下面将一个磁盘/dev/md2扩容到名为GroupMirror的卷组
创建lvm物理卷

pvcreate /dev/md2

扩容卷组

vgextend GroupMirror /dev/md2

此时仍然未生效,下面根据自己的名称修改命令(100%新磁盘的空间扩容到原来的)

lvextend -l +100%FREE /dev/mapper/GroupMirror-mirror_data

上面的操作后仍然未生效

-------如果是ext格式用这个刷新(-p是现实百分比)

resize2fs -p /dev/mapper/GroupMirror-mirror_data

-------如果是xfs格式则用以下的即可

xfs_growfs /dev/mapper/GroupMirror-mirror_data

我拓展了一个8T的机械盘用了一个小时左右

五、具体应用-卸载

(一)卸载lvm

1.移除挂载的分区

比如挂载的分区叫/mirror

umount /mirror

2.删除逻辑卷LV

比如逻辑卷为 /dev/GroupMirror/mirror_data

lvremove /dev/GroupMirror/mirror_data

会询问是否删除,输入y


注意:此时vg卷组还在,数据还在,重新挂载LV和之前数据一样
如果需要重新挂载,看五、(一)误删LV恢复

3.删除卷组VG

vgremove /dev/GroupMirror

会提示,全部选择y即可

注意:此时物理卷还在,数据还在,仍然可以恢复
如果需要重新挂载,看五、(二)误删LV、VG恢复

4.删除物理卷PV

查看pv

pvs

移除对应的物理卷,这个物理卷有可能是raid

pvremove /dev/sde

注意:此时仍然有机会恢复,建议找专业人士

5.删除物理磁盘

注意,这次删除数据就真的没了!

fdisk /dev/sde

依次选择:m、d、3、w

六、具体应用-LVM相关恢复

(一)误删LV(逻辑卷)

1.查询achieve记录

需要通过VG卷组进行恢复
查看VG

vgdisplay

可以看到VG还在,假设VG名称为GroupMirror

查看VG操作记录

vgcfgrestore --list GroupMirror

可以看到类似以下的操作
在这里插入图片描述

2.恢复到指定的节点

vgcfgrestore -f /etc/lvm/archive/GroupMirror_00008-1277402051.vg GroupMirror

然后会显示恢复成功
在这里插入图片描述
激活LV(和新建的时候操作一样)

lvchange -ay /dev/GroupMirror/mirror_data

创建挂载点并挂载,使用原来的挂载点即可
如果是挂载到新的挂载点,mkdir /xxx即可

mount -t ext4 /dev/GroupMirror/mirror_data /mirror

(二)误删LV(逻辑卷)、VG(卷组)恢复

如果删掉了LV和VG仍然可以恢复,先恢复VG,然后再恢复LV(同上面恢复LV)

1.查询achieve记录

vgcfgrestore --list GroupMirror

会看到很多文件,还有修改时间,找到误删时候的文件,y以.vg结尾(通常是最近的一个)

可以看到很多操作记录,比如下面的
在这里插入图片描述

2.恢复卷组VG和LV

这个命令一次性就恢复了两次操作,当然你要选好恢复的.VG文件

vgcfgrestore -f /etc/lvm/archive/GroupMirror_00010-1053623108.vg GroupMirror

完成后会提示
在这里插入图片描述

3.恢复逻辑卷LV

激活LV(和新建的时候操作一样)

lvchange -ay /dev/GroupMirror/mirror_data

创建挂载点并挂载,使用原来的挂载点即可
如果是挂载到新的挂载点,mkdir /xxx即可

mount -t ext4 /dev/GroupMirror/mirror_data /mirror

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984223.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序实现连续签到七天

断签之后会从第一天重新开始 <template><view class"content" style"height: 100vh;background: white;"><view class"back"><view style"position: absolute;bottom: 200rpx;left: 40rpx;width: 90%;"><i…

星际争霸之小霸王之小蜜蜂(十一)--杀杀杀

系列文章目录 星际争霸之小霸王之小蜜蜂&#xff08;十&#xff09;--鼠道 星际争霸之小霸王之小蜜蜂&#xff08;九&#xff09;--狂鼠之灾 星际争霸之小霸王之小蜜蜂&#xff08;八&#xff09;--蓝皮鼠和大脸猫 星际争霸之小霸王之小蜜蜂&#xff08;七&#xff09;--消失…

箭头函数(arrow function)与普通函数之间的区别是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 语法简洁性&#xff1a;⭐ this 的绑定&#xff1a;⭐ 不能用作构造函数&#xff1a;⭐ 没有 arguments 对象&#xff1a;⭐ 不适用于方法&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上…

svn log 高级命令解释

参考目录 基本命令完整命令效果鸣谢 实现目标&#xff1a;svn查询指定版本或时间范围指定人最近的变更文件路径到输出文件 基本命令 svn log --search youname -r {param1}:{param2} -v > custom.out完整命令 svn log --search yuanyubo -r {2020-07-01}:{2020-09-01} -v …

leetcode 43.字符串相乘

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;字符串相乘 思路&#xff1a; 代码&#xff1a; class Solution { public:string multiply(string num1, string num2) {if (num1 "0" || num2 "0") {return "0";}/*0 1 2 下标1 2…

Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)

在本教程中&#xff0c;我们将使用Python和Mirai来开发一个QQ机器人&#xff0c;本文提供了三个教学视频&#xff0c;包教包会&#xff0c;本文也很贴心贴了代码和相关文件。话不多说&#xff0c;直接开始教学。 目录 一、安装配置MIrai 图片验证码报错&#xff1a; 二、机器…

定时任务实现方案总结

一、概述 定时任务的作用是在设定的时间和日期后自动执行任务&#xff0c;执行任务的周期既能是单次也能是周期性。 本文重点说明Timer、ScheduledThreadPoolExecutor、Spring Task、Quartz等几种定时任务技术方案。 二、Timer JDK自带的Timer是最古老的定时任务实现方式了。…

基于SSM的房屋租售网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

2023如何做谷歌收录?

答案是&#xff1a;2023谷歌收录可以通过GPC爬虫池技术完成。 搜索引擎优化&#xff08;SEO&#xff09;对于任何网站来说都是至关重要的。 特别是谷歌作为全球最大的搜索引擎&#xff0c;网站是否能被其快速收录直接关系到网站的流量和影响力。 以下是关于2023年如何做谷歌…

nginx请求接口转发-浏览器访问80端口,要把请求转发至8882

1、需求 浏览器访问80端口&#xff0c;要把请求转发至8882 2、实现 修改ngixn配置文件 ngin配置文件在nginx安装目录/nginx/conf文件夹下 cd /usr/local/nginx/confvi ngin.conf修改server配置 server {listen 80;server_name localhost;location / {proxy_pass …

【MySQL】JDBC 编程详解

JDBC 编程详解 一. 概念二. JDBC 工作原理三. JDBC 使用1. 创建项目2. 引入依赖3. 编写代码(1). 创建数据源(2). 建立数据库连接(3). 创建 SQL(4). 执行 SQL(5). 遍历结果集(6). 释放连接 4. 完整的代码5. 如何不把 sql 写死 &#xff1f;6. 获取连接失败的情况 四. JDBC常用接…

关于假冒我司关联公司进行欺诈活动的严正声明!

近日&#xff0c;有客户致电我司&#xff0c;反馈其在力软的“关联公司”进行了产品咨询时&#xff0c;对方声称可以以更低的价格出售力软次级品牌低代码产品。 对此&#xff0c;我司经过调查&#xff0c;确认所谓“关联公司”系冒充&#xff0c;我司对此类冒用我司名义进行的…

山洪、地质灾害监测利器-泥石流、山体滑坡AI视觉仪

1、设备介绍 AI视觉仪通过AI算法智能化摄像机&#xff0c;能够及时、全面的把握边坡潜在安全风险&#xff0c;有效防范自然灾害。支持全天候运行&#xff0c;在恶劣环境及气候条件下仍能正常进行监测数据采集。自动识别监控区域内是否有泥石流、山体滑坡等&#xff0c;一旦检测…

java中使用 Integer 和 int 的 含义、使用方法 及之间的区别

学习目标&#xff1a; 学习目标如下&#xff1a; 明确 Integer 和 int 的 含义、使用方法 及之间的区别 学习内容&#xff1a; 一、区别&#xff1a; 1.Integer是int的包装类&#xff0c;int则是java的一种基本的数据类型&#xff1b; 2.Integer变量必须实例化之后才能使用&a…

python爬取网站图片案例

下载指定页的图片Get方式 # _*_ coding : utf-8 _*_ # Time : 2023/9/6 9:50 # Author : xiaoyu # File : 爬取表情包 # Project : basicimport urllib.request from lxml import etreedef get_request(page):if (page 1):url "https://sc.chinaz.com/tupian/keaitupia…

【C++ Core Guidelines解析】C++学习之路的一盏明灯

前言&#xff1a;C语言的功能非常丰富&#xff0c;表达能力非常强。因为一种成功的通用编程语言拥有的功能必须比任何开发人员所需要的更多&#xff0c;任何一种有生命力且不断发展的语言都会不断积累用于表达程序员思想的替代用法。这会导致选择过载。那么&#xff0c;开发人员…

本地电脑搭建web服务器、个人博客网站并发布公网访问 【无公网IP】(1)

文章目录 前言1. 安装套件软件2. 创建网页运行环境 指定网页输出的端口号3. 让WordPress在所需环境中安装并运行 生成网页4. “装修”个人网站5. 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会&#xff0c;网络已经成为我们生活离不开的必需品&#xff0c;而纷繁…

【react】Hooks原理和实战

前言 在最初学习react的时候&#xff0c;我们大部分会选择去扒一扒React的官方文档&#xff0c;看看他是什么&#xff0c;怎么使用的。而我却很好奇在文档里学习的第一个完整的组件是 类&#xff08;Class&#xff09;组件&#xff0c;但是在实际工作中我们看到项目中所声明的…

无涯教程-JavaScript - ERFC.PRECISE函数

描述 ERFC.PRECISE函数返回x和无穷大之间集成的互补ERF函数。 互补误差函数等于1-ERF(即1-误差函数),由等式给出- $$Erfc(x) \frac {2} {\sqrt {\pi}} \int_ {x} ^ {\infty} e ^ {-t ^ 2} dt $$ 语法 ERFC.PRECISE(x)争论 Argument描述Required/OptionalxThe lower bound…

K8s 多集群实践思考和探索

作者&#xff1a;vivo 互联网容器团队 - Zhang Rong 本文主要讲述了一些对于K8s多集群管理的思考&#xff0c;包括为什么需要多集群、多集群的优势以及现有的一些基于Kubernetes衍生出的多集群管理架构实践。 一、为什么需要多集群 随着K8s和云原生技术的快速发展&#xff0c…