生产环境lvm磁盘扩容!!!

2023-10-26

一次就好,亲身体验生产环境lvm磁盘扩容

这一天体验了真正的生产环境“三急”!中午客户打电话说报表几个小时没更新了,是不是你们系统有问题啊… 于是开始排除发现磁盘空间满了,需要进行扩容,咱又没有扩容经验潜心研究一下午,终于得出结论 ,以下将描述我亲身扩容的详细步骤

提前说明:此次有两个实验,一:测试环境从磁盘分区到扩容完整步骤,二:正式环境从物理卷直接扩容到lvm上(按需索取,内容相差不大)

一.测试环境完整步骤

  1. 使用df -Th 命令查看磁盘信息 ,可以看到当前lvm逻辑卷容量是38G
	[root@Z ~]# df -TH
	文件系统                类型      容量  已用  可用 已用% 挂载点
	/dev/mapper/centos-root xfs        38G  2.4G   36G    7% /
	devtmpfs                devtmpfs  1.1G     0  1.1G    0% /dev
	tmpfs                   tmpfs     1.1G     0  1.1G    0% /dev/shm
	tmpfs                   tmpfs     1.1G   10M  1.1G    1% /run
	tmpfs                   tmpfs     1.1G     0  1.1G    0% /sys/fs/cgroup
	/dev/sda1               xfs       1.1G  139M  925M   14% /boot
	tmpfs                   tmpfs     208M     0  208M    0% /run/user/0
  1. 查看磁盘分区,可以看到sda 磁盘64G,下面sda2分区分了40G
[root@Z ~]# fdisk -l

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b05f5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM


磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
  1. 新建磁盘分区sda3
[root@Z ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p (p是查看当前分区)

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b05f5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM




命令(输入 m 获取帮助):n(n是新建分区)
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p):   (回车默认选择p主分区)
Using default response p
分区号 (3,4,默认 3):   (回车默认3)
起始 扇区 (83886080-125829119,默认为 83886080):
将使用默认值 83886080
Last 扇区, +扇区 or +size{K,M,G} (83886080-125829119,默认为 125829119):+19G(这里给新建分区19G)
分区 3 已设置为 Linux 类型,大小设为 19 GiB

命令(输入 m 获取帮助):t(指定类型)
分区号 (1-3,默认 3):(要指定的分区号,刚刚默认3,这里也默认3)
Hex 代码(输入 L 列出所有代码):8e   (8e代表LVM)
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):w  (w保存)
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。

注意:保存后最后几行提示设备资源忙,这时同步不了磁盘,需要重启服务器或者执行partprobe,我这里是执行的命令,如果这里不做操作的话,下面格式化磁盘的时候会报错!!!

  1. 查看分区,及格式化分区
[root@Z ~]# fdisk -l

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b05f5

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM
/dev/sda3        83886080   123731967    19922944   8e  Linux LVM

磁盘 /dev/mapper/centos-root:37.7 GB, 37706792960 字节,73646080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

格式化分区
[root@Z ~]# mkfs.xfs  -f  /dev/sda3
meta-data=/dev/sda3              isize=512    agcount=4, agsize=1245184 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4980736, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

不执行"注意"命令或不重启设备,格式化时报找不到设备:
[root@Z ~]# mkfs.xfs  -f  /dev/sda3
/dev/sda3: 没有那个文件或目录

  1. 将分区转换为物理卷,使用pvdisplay命令查看物理卷信息:pvdisplay
转换物理卷
[root@Z ~]# pvcreate /dev/sda3
 WARNING: xfs signature detected on /dev/sda3 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sda3.
  Physical volume "/dev/sda3" successfully created.

查看物理卷
 [root@Z ~]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <39.00 GiB / not usable 3.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              9983
  Free PE               1
  Allocated PE          9982
  PV UUID               v5DSQS-Cumb-xtyK-BWsx-ayfS-T0iT-FC3rbE
   
  "/dev/sda3" is a new physical volume of "19.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               19.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Xkbr0u-Ce9h-jvqW-JSZr-nwxY-qYNo-OSqqWm
  1. 使用pvdisplay命令查看物理卷信息:pvdisplay,看到总容量Alloc PE 为38.9, Free 可分配容量没了
[root@Z ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <39.00 GiB
  PE Size               4.00 MiB
  Total PE              9983
  Alloc PE / Size       9982 / 38.99 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               hTO0Fm-c4q8-yboo-cSig-XLcK-CXo7-JoTInz
  1. 将刚才初始化的物理卷添加到主分区的物理卷:vgextend centos(vg name ) /dev/sda3,添加后查看vgdisplay,可以看到Free 可分配容量有了19G
[root@Z ~]# vgextend centos /dev/sda3
  Volume group "centos" successfully extended
  
[root@Z ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               57.99 GiB
  PE Size               4.00 MiB
  Total PE              14846
  Alloc PE / Size       9982 / 38.99 GiB
  Free  PE / Size       4864 / 19.00 GiB
  VG UUID               hTO0Fm-c4q8-yboo-cSig-XLcK-CXo7-JoTInz
  1. 查看逻辑卷lvm信息: lvdisplay,主要看 LV Path ,LV Size
[root@Z ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                vfUMhU-5XVp-s4uB-lVs3-436b-29Vh-StDsYb
  LV Write Access        read/write
  LV Creation host, time localhost, 2022-03-30 16:58:54 +0800
  LV Status              available
  # open                 2
  LV Size                <3.88 GiB
  Current LE             992
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
--- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                4KsFu6-jk8H-WsUa-1RVM-2DUq-gyPE-Nb6Rcx
  LV Write Access        read/write
  LV Creation host, time localhost, 2022-03-30 16:58:54 +0800
  LV Status              available
  # open                 1
  LV Size                <35.12 GiB
  Current LE             8990
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  1. 使用lvextend命令扩容分区:lvextend -l +4864 /dev/centos/root,扩容完lvdisplay查看 LV size 大小
    4864是:Free PE的id 号 通过vgdisplay命令查看
    /dev/centos/root 是:LV path 通过lvdisplay 命令查看
[root@Z ~]# lvextend -l +4864 /dev/centos/root
  Size of logical volume centos/root changed from <35.12 GiB (8990 extents) to <54.12 GiB (13854 extents).
  Logical volume centos/root successfully resized.

[root@Z ~]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                vfUMhU-5XVp-s4uB-lVs3-436b-29Vh-StDsYb
  LV Write Access        read/write
  LV Creation host, time localhost, 2022-03-30 16:58:54 +0800
  LV Status              available
  # open                 2
  LV Size                <3.88 GiB
  Current LE             992
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                4KsFu6-jk8H-WsUa-1RVM-2DUq-gyPE-Nb6Rcx
  LV Write Access        read/write
  LV Creation host, time localhost, 2022-03-30 16:58:54 +0800
  LV Status              available
  # open                 1
  LV Size                <54.12 GiB
  Current LE             13854
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
  1. 挂载:xfs_growfs /dev/centos/root ;
    磁盘类型为xfs 所以使用:xfs_frowfs 命令
    磁盘类型为ext4类型则使用:resize2fs 命令
[root@Z ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=2301440 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=9205760, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=4495, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 9205760 to 14186496

11.df -TH 查看磁盘信息

[root@Z ~]# df -TH
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        59G  2.4G   56G    5% /
devtmpfs                devtmpfs  1.1G     0  1.1G    0% /dev
tmpfs                   tmpfs     1.1G     0  1.1G    0% /dev/shm
tmpfs                   tmpfs     1.1G   10M  1.1G    1% /run
tmpfs                   tmpfs     1.1G     0  1.1G    0% /sys/fs/cgroup
/dev/sda1               xfs       1.1G  139M  925M   14% /boot
tmpfs                   tmpfs     208M     0  208M    0% /run/user/0

二.正式环境特殊情况

呃呃呃,正式环境是鄙人当时创建的lvm,当时分区vdb1给了300G,但是创建的lvm确给了160G,没用几个月业务就导致磁盘爆满,参照完整步骤,我这里只需要把物理卷剩余的容量分给lvm即可,开始操作

  1. 查看df -Th, /home确实满了
[root@sm dev]# df -TH
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  8.4G     0  8.4G   0% /dev
tmpfs                  tmpfs     8.4G   25k  8.4G   1% /dev/shm
tmpfs                  tmpfs     8.4G  631k  8.4G   1% /run
tmpfs                  tmpfs     8.4G     0  8.4G   0% /sys/fs/cgroup
/dev/vda1              ext4       53G  5.8G   45G  12% /
/dev/mapper/datavg-lv0 ext4      159G  132G   19G  88% /home
tmpfs                  tmpfs     1.7G     0  1.7G   0% /run/user/0
  1. 查看vg卷组 :vgdisplay ,Free PE可用容量为150,这就是vdb300G分了160给lvm,卷组剩余的容量
[root@sm dev]# vgdisplay
  --- Volume group ---
  VG Name               datavg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <300.00 GiB
  PE Size               4.00 MiB
  Total PE              76799
  Alloc PE / Size       38400 / 150.00 GiB
  Free  PE / Size       38399 / <150.00 GiB
  VG UUID               t1PBKO-ukOY-OYNd-mqAx-AK4H-Lpcx-42u4Fl
  1. 查看逻辑卷lvm信息: lvdisplay,主要看 LV Path ,LV Size
[root@sm dev]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/datavg/lv0
  LV Name                lv0
  VG Name                datavg
  LV UUID                3wObg6-kwlf-RB6g-bmPv-HFGi-5B2i-t52Z5j
  LV Write Access        read/write
  LV Creation host, time VM-30-13-centos, 2021-11-11 16:44:19 +0800
  LV Status              available
  # open                 1
  LV Size                150.00 GiB
  Current LE             38400
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0

4.使用lvextend命令扩容分区:lvextend -l +38399 /dev/datavg/lv0,扩容完lvdisplay查看 LV size 大小
38399是:Free PE的id 号 通过vgdisplay命令查看
/dev/datavg/lv0 是:LV path 通过lvdisplay 命令查看

[root@sm dev]# lvextend -l +38399 /dev/datavg/lv0
  Size of logical volume datavg/lv0 changed from 150.00 GiB (38400 extents) to <300.00 GiB (76799 extents).
  Logical volume datavg/lv0 successfully resized.
  1. lvextend命令查看LV Size是否是扩容后的容量
    vgdisplay命苦查看 Free PE是否还有可用容量,因上一步将剩余容量全部添加到lvm内,此时FreePE应为0
[root@smp3 dev]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/datavg/lv0
  LV Name                lv0
  VG Name                datavg
  LV UUID                3wObg6-kwlf-RB6g-bmPv-HFGi-5B2i-t52Z5j
  LV Write Access        read/write
  LV Creation host, time VM-30-13-centos, 2021-11-11 16:44:19 +0800
  LV Status              available
  # open                 1
  LV Size                <300.00 GiB
  Current LE             76799
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0
   
[root@sm dev]# vgdisplay
  --- Volume group ---
  VG Name               datavg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <300.00 GiB
  PE Size               4.00 MiB
  Total PE              76799
  Alloc PE / Size       76799 / <300.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               t1PBKO-ukOY-OYNd-mqAx-AK4H-Lpcx-42u4Fl
  1. 挂载:resize2fs /dev/datavg/lv0 ,因正式环境磁盘类型为ext4,所以使用resize2fs命令进行挂载,
    挂载后df -Th 看下容量是否正确
[root@sm dev]# resize2fs /dev/datavg/lv0 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/datavg/lv0 is mounted on /home; on-line resizing required
old_desc_blocks = 19, new_desc_blocks = 38
The filesystem on /dev/datavg/lv0 is now 78642176 blocks long.

[root@sm dev]# df -TH
Filesystem             Type      Size  Used Avail Use% Mounted on
devtmpfs               devtmpfs  8.4G     0  8.4G   0% /dev
tmpfs                  tmpfs     8.4G   25k  8.4G   1% /dev/shm
tmpfs                  tmpfs     8.4G  631k  8.4G   1% /run
tmpfs                  tmpfs     8.4G     0  8.4G   0% /sys/fs/cgroup
/dev/vda1              ext4       53G  5.8G   45G  12% /
/dev/mapper/datavg-lv0 ext4      317G  132G  171G  44% /home
tmpfs                  tmpfs     1.7G     0  1.7G   0% /run/user/0

至此扩容完成,也因此事对磁盘的理解更上一层楼,知识浅薄,不成敬意,有什么疑问评论区提出

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生产环境lvm磁盘扩容!!! 的相关文章

随机推荐

  • XMind思维导图的结构逻辑该如何体现?3个功能完美体现!

    假设你在玩 模拟城市 但你必须使用以下工具来构建城市 中心主题 城市中心 关键思想 主要道路 次要的思想 次要的道路 标志 地标图片 那么你要怎么安排才能让城市结构附有逻辑性 让城市的规划更加合理 这就是我们将要讨论的问题 同样在我们的思维
  • 初始化列表的特性和构造函数的工作原理

    对于构造函数我们一直有个误区 就是构造函数用于初始化成员变量创建对象 实际上并不是这样的 真正的初始化并不是在构造函数中完成的 而是在初始化列表中完成的 构造函数中的实际上是赋值操作 要了解构造函数的工作原理 得先了解什么是初始化列表 初始
  • 快速达成目标的12种方

    2006 05 04 16 20 15 快速达成目标的12种方法 告诉自己你能主宰命运只有确立了前进的目标 一个人才会最大可能地发挥自己的潜力 主宰自己的命运 在你身上拥有钻石宝藏 美国宾夕法尼亚州著名学府坦普尔大学创始人康惠尔 在演讲中
  • 在superset中快速制作报表或仪表盘

    在中小型企业 当下需要快速迭代 快速了解运营效果的业务 急需一款开源 好用 能快速迭代生产的报表系统 老板很关心 BI工程师很关心 同时系统开发人员也同样关心 一个好的技术选型往往能够帮助公司减少很多成本 并且也不用BI或软件开发同事为了快
  • FRP运行过程中发现的安全漏洞,没有办法修复

    最近经常发送frp搭建外网访问内网不稳定 经过多次排查发现一个可怕的漏洞 这些 goroutines 结束之前正在等待一个 channel 关闭 而这个 channel 永远不会关闭 一个常见的死锁问题 这个进程毫无任何理由吃掉了 90 的
  • Hive Order By、Sort By、Distrbute By、Cluster By区别

    1 Order By 全局排序 只有一个Reducer 2 Sort By 分区内有序 3 Distrbute By 类似MR中Partition 进行分区 结合sort by使用 4 Cluster By 当Distribute by和S
  • XXX packages are looking for funding run `npm fund` for details解决方法

    今天用VScode导入一个vue项目 实现npm install 安装依赖遇到了一些小问题 搞了好久才终于搞好了 下面来直接进入主题 当在终端执行npm install时出现这种情况 然后我们再执行npm update 接下来我们执行npm
  • Mybatis框架(复杂动态SQL),一对一,一对多,多对多

    复合条件查询 动态SQL MyBatis 的强大特性之一便是它的动态 SQL 如果你有使用 JDBC 或其它类似框架的经验 你就能体会到根据不同条件拼接 SQL 语句的痛苦 例如拼接时要确保不能忘记添加必要的空格 还要注意去掉列表最后一个列
  • 哈工大OS实验五---基于内核栈切换的进程切换

    基于内核栈切换的进程切换 实验目的 将linux 0 11中采用的TSS切换部分去掉 取而代之的是基于堆栈的切换程序 写成一段基于堆栈切换的代码 要实现基于内核栈的任务切换 主要完成如下三件工作 重写switch to 将重写的switch
  • Mysql高级部分系列(四)

    1 数据库的设计规范 1 1 为什么不使用自增ID 1 1 1 自增ID的问题 自增ID做主键 简单易懂 几乎所有数据库都支持自增类型 只是实现上各自有所不同而已 自增ID除了简单 其他都是缺点 总体来看存在以下几方面的问题 1 1 1 1
  • idea 部署git总结

    idea 部署git总结 github密匙快捷获取方法 idea将本地项目上传到远程仓库GitHub 报错 error src refspec master does not match any Everything up to date
  • 【线程池上篇】4种常用线程池介绍

    一 线程池介绍 概念 使用原因 线程池就是提前创建好一些线程放在一起的集合 线程池的工作模式时拿到任务后在自己的池子里找看谁闲着 这个活就让谁去干 多线程模式下 系统需要不断地启动和关闭新线程 这个过程不但消耗资源而在存在线程间过渡的不安全
  • C 程序结构

    原文链接 https www runoob com cprogramming c program structure html 在我们学习 C 语言的基本构建块之前 让我们先来看看一个最小的 C 程序结构 在接下来的章节中可以以此作为参考
  • 通过python技术获取甲流分布数据

    近期 多地学校出现因甲流导致的班级停课 儿科甲流患者就诊量呈数倍增长 此轮甲流为何如此严重 感染甲流之后会出现哪些症状 经过专家的介绍甲流之所以这么严重有这些原因导致的 一 疫情完全放开后很多孩子不戴口罩了 预防流感的作用会下降 二是 免疫
  • background-position的向右对齐用法

    一直只知道background position x轴位置 y轴位置 如果靠近左边偏移7px就写成background position 7px 20px 这样的 但是像右要怎么办 以前我是傻傻的给父容器计算了宽度 然后就向左偏移固定的宽度
  • 为什么推荐科研工作使用git

    为什么推荐科研工作使用git 每个人都会犯错 而使用Git 的最大好处就在于 几乎在所有的情况下你都能 撤消 你的错误操作 比如如果你忘记了把一个小小的改动包含进来 因此你要改正你的上个提交 又或者你想要撤销一个完整的提交 因为这个功能有可
  • 【C/C++】获取计算机CPUID序列号

    1 GetGPUId h文件 pragma once include
  • 【解决报错】c#使用ManagedWifi报错出现“不能作为非托管结构进行封送处理;无法计算有意义的大小或偏移量。”

    最近在做C 上位机wifi通信的时候使用了MangedWifi库 但这个库并没有想象中好用 遇到了不少问题 首先网上流传的例程又不能运行 再接着当wifi断开或连接时会异常退出的bug 通过反反复复的调试后 我最终确认了错误的来源 发现是M
  • 微信公众号 config:fail,Error: 系统错误,错误码:1

    微信公众号开发 微信开发者工具 打开调试模式 出现config fail Error 系统错误 错误码 1 查看一下wx config是否成功渲染了 重新赋值 修改后的代码如下 chooseImage var this this 新增代码块
  • 生产环境lvm磁盘扩容!!!

    一次就好 亲身体验生产环境lvm磁盘扩容 这一天体验了真正的生产环境 三急 中午客户打电话说报表几个小时没更新了 是不是你们系统有问题啊 于是开始排除发现磁盘空间满了 需要进行扩容 咱又没有扩容经验潜心研究一下午 终于得出结论 以下将描述我