Skip to main content

LVM在线扩容及相关知识汇总

关于LVM的逻辑结构:

【物理磁盘分区】-创建->【PV(Physical volume)】-组成->【VG(Volume group)】-划分->【LV(Logical volume)】-挂载->【文件系统挂载点】

logical volume manager

新增物理盘对LV卷在线扩容:

  • 对新增硬盘分区

df -ah
fdisk -l
fdisk /dev/sda
n             -->创建分区
t            -->修改分区类型为8e
w            -->保存结果

  • 将分区容量加入VG

pvcreate /dev/sda3                    -->创建PV
lvs                        -->查看确认待扩容的VG名
vgextend VolGroup00 /dev/sda3                -->将sda3扩入VG00

  • 对LV进行扩容

lvextend -L +2G /dev/mapper/VolGroup00-LogVol00        -->扩展LV00,增加2G
e2fsck –f /dev/VolGroup00/LogVol00            -->强行检查data逻辑卷
resize2fs /dev/VolGroup00/LogVol00            -->重定义文件系统大小
**以上三步要按顺序进行,用以下一条命令可以达到上面三条命令相同的效果:
e2fsadm –L +2G /dev/mapper/VolGroup00-LogVol00

df -ah                            -->最后查看调整后的分区挂载情况
lvdisply                        -->查看LV更改后的状态
lvscan                            -->扫描逻辑卷,看它们的活动情况

如果新增LV卷:

lvcreate –n LogVol01 –L 5G VolGroup00            -->从VG00中创建一个新的LV01,大小5G
mkfs.ext3 /dev/VolGroup00/LogVol01                  -->格式化LV01
mke2fs /dev/VolGroup00/LogVol01                -->在LV上建立文件系统

**有些操作需强制卸载挂载点
umount /dev/mapper/VolGroup00-LogVol00 -l        -->卸载下LV00,即/挂载点

====================================================================================

  • 调整根分区/

如果要使根分区 / 使用LVM设备,需先创建好LVM设备,再用lvmcreate-initrd命令在boot分区创建支持lvm功能的虚拟磁盘镜像文件,最后修改grub.conf加载此镜像文件[修改fstab文件将/指向LV]

如果不能通过lvmcreate-initrd生成img,则可以按照下面方法手工修改init文件:

If your initrd script is called /boot/initrd-xxxxxxxxx.img, then you can unpack it with:

mkdir /tmp/initrd
cd /tmp/initrd
gzip -cd /boot/initrd-xxxxxxxxx.img | cpio -imd --quiet

编辑 /tmp/initrd/init ,修改对应的LV信息,然后再重新打包:

cd /tmp/initrd
find . | cpio -co | gzip -9 > /boot/initrd-xxxxxxxxx.img

  • 调整Swap

vgdisplay                        -->查看VG里面是否有剩余空间

swapoff -a                        -->关闭正在用的swap分区

lvextend -L +512M /dev/mapper/VolGroup00-LogVol01    -->扩展用于交换分区的LV

mkswap /dev/ubuntu/swap_1                -->建立swap的文件系统

swapon -a                        -->启用新的swap系统

====================================================================================
LVM常用操作参考:

  • 查看:
    pvdisplay vgdisplay lvdisplay pvs vgs lvs
  • 建立:
    pvcreate /dev/{sda,sdb}
    vgcreate vg01 /dev/sda /dev/sdb
    lvcreate --size 40G -n LVname VGname
  • 增加LV:
    lvresize 60G /dev/vg/lv
    resize2fs 60G /dev/vg/lv
  • 减小LV:
    umount /dev/vg/lv
    resize2fs 20G /dev/vg/lv
    lvresize 20G /dev/vg/lv
  • 删除磁盘:
    pvmove /dev/sda1 /dev/sda2
    vgreduce uplooking /dev/sda1
    pvremove /dev/sda1
  • 扩充磁盘:
    pvcreate /dev/sdb
    vgextend VGname /dev/sdb

====================================================================================

LVM命令集合参考:

  • PV:
    pvchange   pvcreate   pvmove     pvresize   pvscan    
    pvck       pvdisplay pvremove   pvs    
  • VG:
    vgcfgbackup   vgconvert     vgextend      vgreduce      vgscan
    vgcfgrestore vgcreate      vgimport      vgremove      vgsplit
    vgchange      vgdisplay     vgmerge       vgrename     
    vgck          vgexport      vgmknodes     vgs
  • LV:
    lvconvert     lvdisplay   lvresize   lvchange    lvextend    lvreduce         
    lvremove     lvscan     lvcreate     lvrename   lvs 
  • LVM:
    lvm    lvmchange    lvmdump   lvmdiskscan   lvmsar   lvmsadc     

====================================================================================

LVM高级应用:

减小PV:# 风险较大,不建议应用于生产环境

pvresize -t --setphysicalvolumesize 45G -v /dev/sda6 可以再继续
pvresize --setphysicalvolumesize 45G -v /dev/sda6
fdisk /dev/sda6
d掉6 再n +45G t 8e w
partprobe
pvscan

如果在删除某LV后,没有在fstab里将该挂载点去掉,可能会导致重启后无法进入系统,并提示输入root密码进入维护模式或者按Ctrl+D重启。
修复方法如下:

由于该模式下是以read-only挂载分区的,所以需要重新挂载/使其可读写:
(Repair Filesystem)#mount -o remount,rw /
(Repair Filesystem)#vi /etc/fstab        编辑fstab文件
#/dev/mapper/asr_dbp1 /db ext3 defaults 1 2    去掉无效的LV或者磁盘挂载语句
           <<保存退出>>
(Repair Filesystem)#reboot            重启系统

对于其它问题引起的进入维护模式也可以尝试逐个检查磁盘分区
(Repair Filesystem)#fsck /dev/hdaX

Comments

Popular posts from this blog

Cloudera Hadoop 集群安装(ubuntu + CDH5.10)

前言 CDH是Cloudera公司的Hadoop发行版,基于稳定版本的Apache Hadoop构建,包含Hadoop,Spark,Hive,Hbase和一些工具等,并集成了很多补丁,可直接用于生产环境。通过Cloudera Manager可以简化hadoop各组件的部署和配置过程。 目前CDH对ubuntu支持的最高版本为14.04,因此不建议使用更高版本的ubuntu来部署CDH。 环境准备: 1.配置网络(所有节点) 修改hostname: $ sudo vi /etc/hostname cdh01 修改IP地址: $ sudo vi /etc/network/interfaces auto eth0 iface eth0 inet static         address 172.16.13.11         netmask 255.255.255.0         gateway 172.16.13.254 重启网络服务生效: $ sudo ifdown eth0 && sudo ifup eth0 修改ip与主机名的对应关系: $ sudo vi /etc/hosts 172.16.13.11 cdh01 172.16.13.12 cdh02 172.16.13.13 cdh03 2.配置SSH(所有节点) 启用root登陆(CDH5.10需要进行此步操作) $ sudo vi /etc/ssh/sshd_config #PermitRootLogin without-password PermitRootLogin yes $ sudo service ssh restart $ sudo passwd root 设置ssh无密码登陆 //在主节点上执行一路回车,生成无密码的密钥对 $ ssh-keygen -t rsa //将生成的密钥文件复制到其它节点 $ ssh-copy-id cdh02 $ ssh-copy-id cdh03 测试: 在主节点上ssh hadoop2,正常情况下,不需要密码就能直接登陆进去了。 3.安装Oracle JDK(所有节点) 运行CDH5必须使用Oracle的Jdk,需要Java 7及以上版本支持。 在Oracle的官网下载jdk包,解压到相应目录,例如/usr/java/jdk1.8.0_

Bitwarden 配置 Let’s Encrypt 证书

由于在内网环境部署的Bitwarden,不能通过安装脚本自动申请 Let’s Encrypt 的证书。 起初我用了一个自签名证书,发现特别不好使,虽然在firefox 跟 chrome 内核的浏览器上都能通过插件访问,但必须添加信任才行,特别是用Bitwarden Desktop 客户端连的时候,一直报错,可能是不认自签名证书。 于是琢磨了下怎么手动申请Let’s Encrypt的证书用于内网,对过程简单梳理如下。 自签名证书 | Self-Signed Certificate 如果你在内网环境只需要自签名证书,可以参考Bitwarden的帮助文档( Installing and depoying )进行设置: 1、生成自签名证书: //一条命创建私钥和证书: openssl req -x509 -newkey rsa:4096 -sha256 –nodes -days 10950 \    -keyout privite.key -out identity.crt \    -subj "/C= US /ST= New York /L= New York /O= Company Name /OU= CREAST /CN= bw.creast.win " 将生成的文件放到 /ssl 目录下: privite.key     ~/bwdata/ssl/ bw.creast.win/private.key identity.crt      ~/bwdata/ssl/ bw.creast.win/identity.crt 2、生成.pfx格式证书文件: //一条命令将前面生成的私钥和证书打包成需要的pfx格式文件 openssl pkcs12 -export -out ./ identity.pfx -inkey privite.key \    -in identity.crt -certfile identity.crt -passout pass: IDENTITY_CERT_PASSWORD 注意 IDENTITY_CERT_PASSWORD 跟./env/global.override.e

Tor洋葱路由的设置与使用

先说明一下,这里只是利用Tor来访问被GWF屏蔽的优秀服务(如Wikipedia、Blogger、GG App等),并不侧重于如何匿名访问网络。以下Tor设置方法适用于: MS Windows(2000/XP/Vista/Server)系统 第一步:下载并安装Tor 关于Tor(The Onion Router,洋葱路由)的工作原理,可以参考枪旗工作室的说明 ( http://tcno.net/doc/tor/#para1 )。在Windows下安装配置Tor已经非常容易了,直接下载这样一个Tor的Windows 捆绑软件包( Vidalia-Tor-Privoxy Bundle ),其中已经预先配置好这些软件能够一同工作。 安装前可以看到套件捆绑了哪些软件:Tor、Vidalia(Tor 的一个图形用户界面)和 Privoxy(Web 代理软件)、Torbutton(Firefox浏览器插件)全选这些软件进行安装。 安装完成后会自动运行Vidalia,在弹出的控制面板上可以看到当前的状态,Tor已经运行了,此时不需要再进行其它设置了。 第二步:配置浏览器使用Tor 如果使用 Firefox 浏览器,Bundle里已经附带了 Torbutton 插件 ,打开/重启Firefox就会在右下角显示Tor Enabled/Disabled,单击它可以选择是否开启Tor代理功能。 对于 Internet Explorer 没有现成的插件可用,需要手动配置代理设置,也很容易。 菜单位置 工具 - Internet 选项 - 连接 - 局域网设置 - 代理服务器 - 高级 - 服务器 在代理理服务器地址栏里填入 "localhost",端口为 "8118"(Privoxy不支持FTP代理,填不填都无所谓了);注意套接字SOCKS代理的端口为 "9050",如果有其它选项,请选择Socks5,然后"确定"即可。 对于 Maxthon ,如果对IE设置了Tor可以选择“使用IE代理设置”,或者手动添加一个代理列表,内容与上面填写的一样,然后选择应用就可以了。 这里说明一下 Privoxy 的作用,因为当直接使用 SOCKS 代理时,浏览器会泄露