首先创建lvm(2个8T的盘,由于硬件制造商的原因8T的盘在操作系统识别来看并没有8T)

parted /dev/sdb
parted /dev/sdc
    (parted) mklabel gpt                     #标记为gpt格式的硬盘
    (parted) mkpart                            #分区
    文件系统类型?  [ext2]? ext4       #ext4文件系统
    起始点? 0
    结束点?-1
    toggle lvm                                     #给分区打上lvm标签
mkfs.ext4 /dev/sdb1                        #格式化
mkfs.ext4 /dev/sdc1                        #格式化
tune2fs -m 1 /dev/sdb1                   #调整系统为root用户保留的空间,默认为5%
tune2fs -m 1 /dev/sdc1

pvcreate  /dev/sdb1 /dev/sdc1                         #创建pv
vgcreate vr_vg  /dev/sdb1  /dev/sdc1              #创建vg
vgdisplay                                                         #查看vg所有的PE,默认4M为一个PE
lvcreate -l 3815442 -n lv_vr vg_vr                   #将所有的空间创建一个lv
#第一次创建pv就这样结束了,并没有遇见任何坑;但是第二次扩展的时候却遇见了一个大坑

#由于业务的变迁,16T的硬盘已经不再够用,需要将剩下的一块盘(8T)扩展到lvm中
扩展lvm:
    首先将硬盘分区格式(参照上面的步骤)
    pvcreate  /dev/sdd1
    vgvgextend   vg_vr  /dev/sdd1                                          #扩展vg
    lvresize  -l  +1907720  /dev/mapper/vr_vg-vr_lv               #扩展lv
执行lvdisplay可以看见lv已经扩展了,但是使用df -hl查看的时候分区还是这么大,这时候我执行 resize2fs /dev/mapper/vr_vg-vr_lv 刷新逻辑卷的时候 "坑出现了"
$ resize2fs  /dev/mapper/vr_vg-vr_lv
        resize2fs: New size too large to be expressed in 32 bits                            
        #报错了,说32文件系统最大只支持16T的分区,emmm 出现问题就要解决,没办法只能 百度了结果没有找到换Google试试,最后总算找到了解决办法

    https://askubuntu.com/questions/779754/how-do-i-resize-an-ext4-partition-beyond-the-16tb-limit      
    #Google找到的文档,国内也可以访问

    更具文档的相关描述是因为 resize2fs 低版本有个bug(其实也不算bug),既然知道了原因那么接开始干,将resize2fs升级为最新版本

    umount /dev/mapper/vr_vg-vr_lv            #先把挂载去掉
    git clone -b v1.44.2 https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git e2fsprogs && cd e2fsprogs       
        #下载resize2fs 版本必须高于1.44
    ./configure                               #检查依赖关系(一般都不会遇见什么坑)
    make                                       #编译,别执行make install

    cd resize/
    ./resize2fs /dev/mapper/vr_vg-vr_lv               #运行这条命令会把32位文件系统转换为64为文件系统(分区小于16T不会装换),并且会扩大超级块的数量
    #转换完之后提示需要使用e2fsck -f 检查分区

    e2fsck -f  /dev/mapper/vr_vg-vr_lv              #擦,又报错,说e2fsck不支持64位的文件系统,emmmmm,想了一下可能 e2fsck 和 resize2fs 一样版本过低不支持64位文件系统,用最新版本试试,e2fsck和resize2fs是由一个包提供的
    cd ..
    cd e2fsck/
    ./e2fsck  /dev/mapper/vr_vg-vr_lv                    #果然使用新版本的e2fsck就可以了
    ./resize/resize2fs /dev/mapper/vr_vg-vr_lv      #然后刷新文件系统
    df -hl                                                                #看见22T分区大小(硬件制造商的锅)

    #到这儿我心想应该没问题了,结果更大的坑还在后面等着我
    执行 lvdisplay 看看没问题
    执行 vgdisplay 看看没问题
    执行 pvdisplay 看看.....坑来了

    --- Physical volume ---
    PV Name               /dev/sdb1
    VG Name               vr_vg
    PV Size               7.28 TiB / not usable 1.30 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              1907721
    Free PE               0
    Allocated PE          1907721
    PV UUID               PCFu9x-SEGH-W941-0hc9-NHBb-0Nox-QdT79y

    --- Physical volume ---
    PV Name               /dev/sdc1
    VG Name               vr_vg
    PV Size               7.28 TiB / not usable 1.30 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              1907721
    Free PE               0
    Allocated PE          1907721
    PV UUID               VHZUiE-in7U-RljG-WrvU-rO5u-lLf4-gpuMqE

    --- Physical volume ---
    PV Name               unkNown device                                              #未识别的设备????这是什么情况
    VG Name               vr_vg
    PV Size               7.28 TiB / not usable 4.37 MiB
    Allocatable           yes (but full)
    PE Size               4.00 MiB
    Total PE              1907720
    Free PE               0
    Allocated PE          1907720
    PV UUID               x38382-rjUg-Fj5B-h5hC-LvrK-tq2h-HcZrkJ

#没办法解决了半天没还是解决不了.....,重启一下试试,结果一重启机器起不来了,叫机房的人看看....最后发现是系统检查 /dev/mapper/vr_vg-vr_lv 报错了,果然是个坑啊,没办法机房的人解决不了,自己去一下机房解决吧!!!

#来到机房第一件事进单用户模式,结果进不去...原因是因为fsck检查/dev/mapper/vr_vg-vr_lv失败

/dev/mapper/vr_vg-vr_lv                   /data                   ext4    defaults       1 2                #/etc/fstab配置

硬盘检查不过进不了系统,那么就只能把服务器的系统盘卸下来挂载到其他的服务器上,修改挂载盘的 etc/fstab 把挂载lvm的哪行去掉,然后放回原来的服务器

#做完这些操作之后成功进入系统....但是检查lvm却发现/dev/mapper/不存在vr_vg-vr_lv.... 这是什么情况???

lvdisplay                 #没问题一切正常
vgdisplay                 #没问题一切正常
pvdisplay                 #/dev/sdd还是显示unkNown device

那么先解决unkNown device这个问题吧:
  首先肯定要卸掉/dev/sdd这个盘:
    vgreduce vr_vg --removemissing --force              #强行卸掉vr_vg里面未知的设备

    lvdisplay             #查看lv大小还是22T,但是现在两块盘只有16T,所有要将lvm恢复成两块盘时候的大小

  恢复lvm:
    cd /etc/lvm/          #在lvm目录下有两个主要的目录 archive:保存lvm每次发生改变的源数据  backup:lvm的备份文件
    cd archive/           #找到lvm还是两块盘的时候的备份

    cp vr_vg_00002-1529881488.vg ../backup/     #vgcfgrestore 恢复时只会在这个目录查找
    cd ../backup/
    mv vr_vg vr_vg.back1                        #备份当前的vr_vg(vg的名字)
    mv vr_vg_00002-1529881488.vg vr_vg
    vgcfgrestore vr_vg                          #恢复备份

    lvdisplay                             #查看lv大小已经恢复成16T,现在需要把剩下的那块盘加上

    首先还是将硬盘分区格式,然后使用pvcreate创建pv,使用vgextend扩展vg,使用lvresize扩展lv

    扩展完后/dev/mapper/还是不存在vr_vg-vr_lv,那是因为vg还没有激活

    vgchange -ay vr_vg            #激活vg,这个时候再去查看/dev/mapper/发现vr_vg-vr_lv已经有了,但是这时候还不能直接使用,因为刚加了的盘还没有执行resize2fs

    ./e2fsck -f  /dev/mapper/vr_vg-vr_lv            #先检查硬盘(因为lv已经扩展过一次了所以会提示实际的块小于应有的块,是否检查,回复 y 就行,当检查到所有的块之后会询问你是否将这些加入现有分区,回复y即可)

    ./resize/resize2fs /dev/mapper/vr_vg-vr_lv      #刷新lv大小

    最后刷新完之后,一切正常,由于lvm的线性存储,数据也没有丢失

  最后:
    修改
      /etc/fstab配置/dev/mapper/vr_vg-vr_lv                   /data                   ext4    defaults       0 0

centos 6 lvm 扩容超过16T的一个坑(unknown device)的更多相关文章

  1. iOS推送通知适用于Dev而不是Enterprise Distribution

    本网站上没有其他问题,我已经能够找到实际上提出了Dev将工作的原因,但企业分布不会.为什么归档总是使aps环境生产?

  2. ios – testflight库和Xcode 5没有变化现在说“ld:找不到-lTestFlight的库”

    我已经创建了几个月的应用程序,突然Xcode5不想构建它.它只是抱怨以下错误.如果我理解它可以,它会抱怨testflight,但我几周没有改变它.它完美地编译了它.我不得不说我已经尝试将AdobeADMS跟踪库添加到项目中.然后,出现链接器错误.任何提示?

  3. 如何在ios swift项目中为dev n prod使用两个不同的GoogleService-info.plist文件?

    我需要使用两个不同的GoogleService-info.plist来处理dev和prod构建,目前我只是通过在编辑方案中更改“构建配置”来分离dev和prod,但现在我需要有两个不同的.plist文件dev和prod用于处理谷歌分析,pushwoosh等,解决方法对于这种情况,您需要在Dev和Prod的项目中使用带有diffbundleid的不同Targets.之后,您可以链接GoogleSer

  4. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  5. openstack安装liberty--安装对象存储服务swift

    通常使用CACHE技術提高性能Accountservers賬戶服務,管理對象存儲中的賬戶定義。Containerservers容器服務,在對象存儲中管理容器或文件夾映……Objectservers對象服務,在存儲節點管理實際的對象,比如文件。Wsgimiddleware處理認證,通常使用OPENSTACKIdentityswiftclient為用戶提供命令行接口使用RESTAPIswift-init初始化和構建RING文件腳本swift-recon一個命令行工具,用於檢索群集的各種度量和測試信息。

  6. 使用 Swift语言进行 Hadoop 数据流应用程序开发

    如果您发现了问题,或者希望为改进本文提供意见和建议,请在这里指出.在您开始之前,请参阅目前待解决的问题清单.简介本项目包括两类Hadoop流处理应用程序:映射器mapper和总结器reducer。如上所示,在Hadoop上编写流处理程序是一个很简单的工作,也不需要依赖于特定的软件体系。

  7. (Cross-)编译Swift for Raspberry PI

    Swift现在是开源的.有没有人试过编译Swift的RaspBerryPI?我开始做,但我的8GBSD卡似乎太小了;)是否可以从Ubuntu交叉编译?写Swift打开你最喜欢的文本编辑器,编写一个程序并保存它:编译它并运行它:而已!

  8. Swift 3 dev快照中的POST请求给出了“对成员’dataTask的模糊引用(with:completionHandler :)’

    编辑:我注意到有人在我之后写了这个问题的副本.这里的答案是更好的答案.使用URLRequest结构.在Xcode8中工作正常:另外,出现此错误的原因是URLSessionAPI具有相同的名称方法,但每个都采用不同的参数.因此,如果没有明确的演员,API将会混淆.我认为这是API的命名错误.发生此问题,代码如下:

  9. android – JacksonParser数据绑定和核心导致“找到APK的重复文件”?

    有什么我做错了吗?

  10. 针对不同环境的不同Android构建

    我希望能够构建和安装我的应用程序的多个版本(同时),针对不同的环境,如开发,暂存和生产.AndroidManifest.xml中的软件包名称似乎是这里的主要障碍,因为它是唯一标识应用程序的内容.我认为可以简单地在com.mydomain.prod,com.mydomain.staging和com.mydomain.dev之间切换或某种类似的约定,但到目前为止,我还没有运气的包装结构对于这种方法.我

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部