linux记一次给数据库存放目录扩充大容量
- 格式:docx
- 大小:717.13 KB
- 文档页数:12
linux 申请大容量内存的方法【原创版4篇】目录(篇1)1.引言:介绍 Linux 系统中申请大容量内存的需求2.内核空间申请内存的方法:讲解 kmalloc 函数及其特点3.用户态申请内核态内存的方法:介绍 brk 系统调用、setfs、getfs 以及 dommap 等方法4.Linux 内存管理机制:概述地址空间、页(page)管理以及物理内存分配5.预留内存和大块内存申请:讨论内核对于大内存申请的优化方法6.结论:总结 Linux 申请大容量内存的方法及特点正文(篇1)在 Linux 系统中,有时我们需要申请大容量的内存空间以满足程序运行的需求。
本文将介绍几种在 Linux 系统中申请大容量内存的方法。
首先,我们可以使用 kmalloc 函数来申请内核空间内存。
kmalloc 函数的原型为:void *kmalloc(size_t size, int flags),其中 size 表示要分配的内存块大小,flags 表示分配标志,常用的有 (会引起睡眠) 和 (不引起睡眠,分配不到,立即返回)。
使用 kmalloc 函数申请的内存位于内核物理内存映射区域,物理上连续,与真实的物理地址只有一个固定偏移。
其次,如果我们需要在内核态使用用户态地址空间,可以采用以下几种方法:使用 brk 系统调用、setfs、getfs 以及 dommap 等。
这些方法可以在内核态和用户态之间映射物理内存,从而实现内核态访问用户态地址空间。
Linux 内存管理机制中,地址空间分为三个区域:DMA、normal 和highmem。
物理内存分配时,内核会根据不同的内存需求选择合适的区域进行分配。
而页(page)是 Linux 内存管理的基本单位,通常一页为 4KB。
在初始化时,内核为每个物理内存页建立一个 page 的管理结构。
针对大内存申请,Linux 内核也提供了一些优化方法。
例如,在申请大容量内存时,内核可以采用伙伴系统进行分配。
实战Linux下VMware虚拟机根目录空间扩充分类:Linux 2011-02-14 16:59 532人阅读评论(0) 收藏举报今天上午接到通知说服务器挂了,经过检查发现原因是Linux的虚拟机根分区已经使用100%,以至于服务不能正常进行。
经过小小的研究,顺利解决问题,把服务器的空间由4G扩成12G。
现将执行全过程总结如下,以供分享。
首先,介绍下大体的解决思路,要想扩充,硬件上要有准备,说白了也就是要有一块新的空间来供我们使用。
对于实体机我们需要准备一块新的硬盘,而对于VMWare 虚拟机,我们只需要使用vmware自带的软件扩充下磁盘大小。
扩充磁盘,只意味着硬件条件得到满足。
接下来就需要对新的磁盘空格进行合理的操作,来扩充我们需要的分区。
值得注意的是,这里我们基于LVM来操作的。
如果您的环境不是LVM的,可以考虑改成LVM的,否则后文无需再读。
具体执行过程将细细道来。
第一步、使用VMware工具扩容分配的硬盘空间1、vmware 提供一个命令行工具,在Windows下为vmware-vdiskmanager.exe 位于vmware 的安装目录下,比如C:/Program Files/VMware/VMware Workstation/vmware-vdiskmanager.exe.在Linux下有直接的vmware-vdiskmanager指令。
进行的操作:在windows 下运行CMD , 转到vmware 的安装目录,可执行vmware-vdiskmanager.exe;在Linux下,直接敲入vmware-vdiskmanager ,可执行该指令扩充使用的指令: vmware-vdiskmanager -x 16Gb myNewlinux.vmdk说明:要扩容的系统这时不能在运行,参数"-x" 表示要扩展虚拟机硬盘空间,紧随其后的数字是要扩展到的大小,而非增加量(本例为扩展到16GB ,这是一个磁盘总量,包含了原先的磁盘容量) 。
Linux扩容根⽬录空间⼤⼩环境查看磁盘空间⼤⼩fdisk -l查看磁盘信息创建新分区操作系统版本IP Virtualbox版本Centos7172.21.3.20 6.1root@ubuntu14:/opt# df -h⽂件系统容量已⽤可⽤已⽤% 挂载点/dev/mapper/ubuntu14--vg-root 28G 23G 3.3G 88% /none 4.0K 0 4.0K 0% /sys/fs/cgroupudev 3.9G 4.0K 3.9G 1% /devtmpfs 799M 384K 799M 1% /runnone 5.0M 0 5.0M 0% /run/locknone 3.9G 0 3.9G 0% /run/shmnone 100M 0 100M 0% /run/user/dev/vda1 236M 37M 188M 17% /bootroot@ubuntu14:/opt# fdisk -lDisk /dev/vda: 161.1 GB, 161061273600 bytes16 heads, 63 sectors/track, 312076 cylinders, total 314572800 sectorsUnits = 扇区 of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0001a023设备启动起点终点块数 Id 系统/dev/vda1 * 2048 499711 248832 83 Linux/dev/vda2 501758 62912511 31205377 5 扩展/dev/vda5 501760 62912511 31205376 8e Linux LVMDisk /dev/mapper/ubuntu14--vg-root: 29.8 GB, 29804724224 bytes255 heads, 63 sectors/track, 3623 cylinders, total 58212352 sectorsUnits = 扇区 of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/ubuntu14--vg-root doesn't contain a valid partition table Disk /dev/mapper/ubuntu14--vg-swap_1: 2147 MB, 2147483648 bytes255 heads, 63 sectors/track, 261 cylinders, total 4194304 sectorsUnits = 扇区 of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/ubuntu14--vg-swap_1 doesn't contain a valid partition table root@ubuntu14:/opt# fdisk /dev/vda命令(输⼊ m 获取帮助): m命令操作a toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partitionl list known partition typesm print this menun add a new partitiono create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system id'u change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)命令(输⼊ m 获取帮助): n #new 新分区Partition type:p primary (1 primary, 1 extended, 2 free)l logical (numbered from 5)Select (default p): p #选择主分区分区号 (1-4,默认为 3): #分区序号4起始 sector (499712-314572799,默认为 499712): #分区开始回车默认将使⽤默认值 499712Last sector, +扇区 or +size{K,M,G} (499712-501757,默认为 501757):将使⽤默认值 501757命令(输⼊ m 获取帮助): t #修改分区格式分区号 (1-5): 4 #修改分区号Hex code (type L to list codes): 8e #格式选择8e linux LVMHex code (type L to list codes): 8e #格式选择8e linux LVMChanged system type of partition 4 to 8e (Linux LVM命令(输⼊ m 获取帮助): p #显⽰分区信息Disk /dev/vda: 161.1 GB, 161061273600 bytes16 heads, 63 sectors/track, 312076 cylinders, total 314572800 sectors Units = 扇区 of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x0001a023设备启动起点终点块数 Id 系统/dev/vda1 * 2048 499711 248832 83 Linux/dev/vda2 501758 62912511 31205377 5 扩展/dev/vda3 499712 501757 1023 83 Linux/dev/vda4 62912512 314572799 125830144 8e Linux LVM/dev/vda5 501760 62912511 31205376 8e Linux LVM Partition table entries are not in disk order命令(输⼊ m 获取帮助): 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 atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.重启操作系统reboot创建物理卷root@ubuntu14:~# pvcreate /dev/vda4Physical volume "/dev/vda4" successfully created查看新建的物理卷和⼤⼩root@ubuntu14:~# pvdisplay--- Physical volume ---PV Name /dev/vda5VG Name ubuntu14-vgPV Size 29.76 GiB / not usable 2.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 7618Free PE 0Allocated PE 7618PV UUID XR32TY-aRQC-IQC6-oCx7-aa9X-KdJe-bHmaBd"/dev/vda4" is a new physical volume of "120.00 GiB"--- NEW Physical volume ---PV Name /dev/vda4VG NamePV Size 120.00 GiBAllocatable NOPE Size 0Total PE 0Free PE 0Allocated PE 0PV UUID MVK0IT-LDgP-eWwZ-fzQM-tdyY-4kRQ-nbk122添加新的物理卷root@ubuntu14:~# vgextend ubuntu14-vg /dev/vda4Volume group “ubuntu14-vg” successfully extended查看卷组信息root@ubuntu14:~# vgdisplay--- Volume group ---VG Name ubuntu14-vgSystem IDFormat lvm2Metadata Areas 2Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 2Open LV 2Max PV 0Cur PV 2Act PV 2VG Size 149.76 GiBPE Size 4.00 MiBTotal PE 38338Alloc PE / Size 7618 / 29.76 GiBFree PE / Size 30720 / 120.00 GiBFree PE / Size 30720 / 120.00 GiBVG UUID cq2Z6G-P6j1-S2gM-mibz-d63V-NjkS-dHYe7D增加ubuntu14-vg⼤⼩#使⽤ lvresize -L +119.9G /dev/mapper/ubuntu14--vg-root 命令。
linux下mysql配置文件f详解【转】basedir=path使用给定目录作为根目录(安装目录)。
character-sets-dir=path给出存放着字符集的目录。
datadir=path从给定目录读取数据库文件。
pid-file=filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);Init-V脚本需要使用这个文件里的进程ID 结束mysqld进程。
socket=filename 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统;默认设置一般是/var/lib/mysql/mysql.sock文件)。
在Windows环境下,如果MySQL客户与服务器是通过命名管道进行通信的,–sock选项给出的将是该命名管道的名字(默认设置是MySQL)。
lower_case_table_name =1/0新目录和数据表的名字是否只允许使用小写字母;这个选项在Windows环境下的默认设置是1(只允许使用小写字母)。
mysqld程序:语言设置character-sets-server= name 新数据库或数据表的默认字符集。
为了与MySQL的早期版本保持兼容,这个字符集也可以用–default-character-set选项给出;但这个选项已经显得有点过时了。
collation-server=name新数据库或数据表的默认排序方式。
lanuage=name用指定的语言显示出错信息。
mysqld程序:通信、网络、信息安全enable-named-pipes 允许Windows2000/XP环境下的客户和服务器使用命名管道(named pipe)进行通信。
这个命名管道的默认名字是MySQL,但可以用–socket选项来改变。
local-infile[=0]允许/禁止使用LOAD DATA LOCAL语句来处理本地文件。
linux boot扩容操作方法
在Linux系统中,如果你需要扩展根分区的大小,你可以按照
以下步骤进行操作:
1. 首先,在进行任何磁盘操作之前,一定要备份重要数据,因
为操作可能会导致数据丢失。
2. 确认你的磁盘空间情况,可以使用命令`df -h`来查看当前
磁盘空间的使用情况,确定是否有可用空间来扩展根分区。
3. 如果你的根分区是LVM管理的,你可以使用`lvdisplay`命
令来查看逻辑卷的情况,使用`lvextend`命令来扩展逻辑卷的大小。
4. 如果根分区不是LVM管理的,你需要使用GParted或者
fdisk等工具来调整分区的大小。
首先,使用`fdisk -l`命令来查
看磁盘分区的情况,然后使用`fdisk`命令来删除根分区,重新创建
一个更大的分区,最后使用`resize2fs`命令来调整文件系统的大小。
5. 重启系统,确保系统能够正常引导并且根分区的大小已经扩展。
需要注意的是,扩展根分区是一项风险较大的操作,需要谨慎对待。
如果你不确定如何操作,建议寻求专业人士的帮助,以避免意外情况的发生。
linux c 快速写大文件的策略Linux C 是一种在 Linux 环境下使用 C 语言进行编程的技术。
在某些应用场景中,我们需要快速地生成大文件。
本文将介绍一些在Linux C 中快速写大文件的策略,以帮助读者更好地理解和应用这些技术。
在Linux C 中,我们可以使用文件操作函数来进行文件的读写操作。
为了快速地写入大文件,我们可以采用以下策略:1. 使用缓冲区:在写入大文件时,直接使用文件操作函数进行写入是非常低效的。
为了提高写入速度,我们可以使用缓冲区来暂存待写入的数据。
通过一次性写入一块较大的数据,可以减少写入操作的次数,从而提高写入速度。
可以使用`fwrite` 函数来一次性写入缓冲区中的数据。
2. 调整文件指针:在写入大文件时,我们可以通过调整文件指针的位置来实现快速写入。
通过调用`fseek` 函数,我们可以将文件指针移动到指定的位置,然后进行写入操作。
这样可以避免每次写入都从文件的开头进行操作,提高写入速度。
3. 并行写入:在某些情况下,我们可以将大文件分割成多个小文件,并使用多个线程或进程同时进行写入操作。
通过并行写入,可以充分利用系统资源,提高写入速度。
在Linux C 中,可以使用线程库或进程库来实现并行写入操作。
4. 优化IO 操作:在进行文件写入操作时,可以采用一些优化技巧来提高写入速度。
例如,可以使用非阻塞 IO 或异步 IO 来实现并行写入操作。
另外,可以设置文件描述符的属性,如缓冲区大小、文件锁等,来优化写入操作。
5. 写入数据压缩:在写入大文件时,可以考虑对待写入的数据进行压缩操作。
通过压缩数据,可以减少写入的数据量,从而提高写入速度。
在 Linux C 中,可以使用压缩库来实现数据压缩操作。
通过以上几种策略的组合应用,我们可以在Linux C 中快速地写入大文件。
在实际应用中,我们可以根据具体的需求和场景选择合适的策略。
同时,我们还需要注意以下几点:1. 写入速度与硬件性能有关:在进行大文件写入时,除了优化写入的策略,硬件性能也是一个重要因素。
Linux LVM硬盘管理及LVM扩容LVM磁盘管理一、LVM简介 (1)二、LVM基本术语 (2)三、安装LVM (3)四、创建和管理LVM (4)2、创建PV.. 63、创建VG.. 74、创建LV.. 95、LV格式化及挂载 (10)一、LVM简介LVM是Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。
LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。
它使系统管理员可以更方便的为应用与用户分配存储空间。
在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。
LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。
如图所示LVM模型:由四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,当一个逻辑分区的空间不够用的时候,可以从剩余空间上划分一些空间给空间不够用的分区使用。
二、LVM基本术语前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
首先我们讨论以下几个LVM术语:物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda 等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
LVM新增扩容与缩容在这之前,我也写过一篇LVM逻辑卷扩容的教程,因为时间急,当时没有很细致的整理,也没好好排版,这次我计划重新做一次完整的整理,所谓完整的整理,当然是总结了实操过程中的几种好方法,做运维这块,肯定即要技术扎实、干活老练,最重要的是要高效!高效!高效!因此本次教程除了有扩容、缩容,还有2种扩容方式。
我相信肯定会给你带来实际的用处。
本人追求实干,就不放截图了,图哪有文字干练那么,我们开始吧!注意:服务器新加硬盘、原硬盘扩容后,需要进行如下扫描操作才能发现磁盘,如果服务器IO繁忙,则需要重启才能刷新内核的磁盘信息。
一、磁盘扫描命令12二、磁盘LVM扩容磁盘扩容主要分两类:一是全新硬盘,二是当前虚拟硬盘扩容,LUN扩容。
1、首先进行磁盘扩容人工操作23、新建物理分区,使容量被被系统识别1)CentOS 6.x方式:CentOS 6.x 使用fdisk命令进行新建分区;2)CentOS 7.x方式:原磁盘扩容下,可新建pv加入vg,也可原pv扩容,因此有如下两种方式:45、pv扩容:针对以上两种分区的新建方式,PV也产生两种扩容方式,一种新建,一种resize6、VG扩容2)做了resize的PV,无需对VG扩容,新空间会直接加到VG下,非常便捷(原硬盘上扩容)7、89、使用df -h 检查文件系统新容量变化是否正确。
10、三、磁盘LVM缩容针对CentOS6.x系统的ext4文件系统,可以进行目录缩小操作,但是具有失败概率。
123456、使用df -h 检查文件系统新容量变化是否正确7、以上扩容、缩容操作,包括其他新目录挂载,如果涉及修改fstab文件,可以使用如下命令测试。
linux分区扩容不丢失数据方法在使用Linux操作系统的过程中,经常会遇到需要对分区进行扩容的情况。
但是在进行分区扩容时,我们必须确保数据不会丢失。
本文将介绍如何在Linux系统下对分区进行扩容而不丢失数据的方法。
在Linux系统中,我们可以使用LVM(Logical Volume Manager)来动态地对分区进行扩容。
LVM允许我们在不停机的情况下对分区进行扩容,同时也可以确保数据的完整性。
下面是具体的操作步骤:1. 首先,我们需要检查当前系统的磁盘空间情况,可以使用命令`df -h`来查看当前的磁盘使用情况以及分区的大小。
2. 确认需要扩容的分区是否为LVM类型的分区。
可以使用命令`sudo fdisk -l`或者`lsblk`来查看系统的分区情况。
3. 如果需要扩容的分区是LVM类型的,那么我们可以使用`lvdisplay`命令来查看逻辑卷的详细信息,包括逻辑卷的路径、大小等。
4. 确认扩容的目标分区是否有足够的物理卷(Physical Volume)可用。
可以使用`pvdisplay`命令来查看物理卷的情况。
5. 如果目标分区有足够的物理卷可用,那么我们可以使用`lvextend`命令来对逻辑卷进行扩容。
例如,如果我们要将逻辑卷/dev/vg01/lv01扩容到100G,可以使用命令`sudo lvextend -L+100G /dev/vg01/lv01`。
6. 扩容完成后,我们需要对文件系统进行扩展,以便能够使用新增的空间。
如果是ext2/ext3/ext4文件系统,可以使用`resize2fs`命令来对文件系统进行扩展。
例如,可以使用命令`sudo resize2fs /dev/vg01/lv01`来对逻辑卷的文件系统进行扩展。
通过以上步骤,我们可以在Linux系统下对分区进行扩容而不丢失数据。
使用LVM可以非常方便地管理分区,并且可以确保在扩容过程中数据的完整性。
希望本文对你有所帮助!。
常⽤命令说明m获取帮助n添加新分区d删除分区linux分区扩容前提摘要:ubuntu20,当主分区sda1剩余可⽤空间较少时,需进⾏硬盘分区扩容A.服务器没有卷组,需要创建卷组,挂载磁盘1.df -hl //查看磁盘可⽤空间⼤⼩2.fdisk -l //查看磁盘分区情况由上图可知:/dev/sda:200GiB 已分区的磁盘/dev/sdb: 15GiB 未分区的磁盘3.对未分区的磁盘 /dev/sdb 进⾏分区root@ubuntu:~# fdisk /dev/sdbWelcome to fdisk (util-linux 2.34).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0x0668a3c4.Command (m for help): p //输⼊p指令,查看已分区数量(有0个)Disk /dev/sdb: 15 GiB, 16106127360 bytes, 31457280 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x0668a3c4Command (m for help): n //输⼊ n {new partition}指令,新增加⼀个分区Partition typep primary (0 primary, 0 extended, 4 free)e extended (container for logical partitions)Select (default p): p //输⼊p {primary partition},分区类型选择为主分区Partition number (1-4, default 1): //输⼊分区号 1 {partition number} ,分区号选1First sector (2048-31457279, default 2048): //回车,默认(起始扇区)Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31457279, default 31457279): //回车,默认(结束扇区)Created a new partition 1 of type 'Linux' and of size 15 GiB.Command (m for help): w //输⼊w指令,将以上改动写⼊分区表The partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.保存后,重启服务器,再次进⼊fdisk查看分区情况,可发现增加了⼀个 /dev/sdb1格式化分区:mkfs.ext4 /dev/sdb1 //下⾯的操作会再执⾏⼀遍,此处可省略。
一、Linux磁盘管理之GPT分区硬盘分区表扫盲:MBR和GPT表MBR全称为Master Boot Record主引导记录,是传统的分区机制,应用于绝大多数使用BIOS的PC设备MBR+BIOSMBR支持32位和64位系统。
MBR支持分区数量有限。
MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间(有第三方解决方法)。
GPT(GUID Partition Table)全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点。
支持超过2T的磁盘(64位寻址空间)。
fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。
向后兼容MBR。
必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS)。
GPT+UEFI必须使用64位系统。
Mac、Linux系统都能支持GPT分区格式。
Windows 7/8 64bit、Windows Server 2008 64bit支持GPT。
以上就是Linux系统MBR和GPT分区的区别,总得来说GPT比MBR更先进,但是MBR的兼容性比GPT要好。
在Linux系统中使用GPT分区格式(以CentOS 7为例):parted用法和常用选项:用法:parted [选项]... [设备[命令[参数]...]...]将带有“参数”的命令应用于“设备”。
如果没有给出“命令”,则以交互模式运行.帮助选项:-h, --help 显示此求助信息-l, --list 列出所有设别的分区信息-i, --interactive 在必要时,提示用户-s, --script从不提示用户-v, --version显示版本操作命令:检查MINOR #对文件系统进行一个简单的检查cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区help [COMMAND] #打印通用求助信息,或关于COMMAND的信息mklabel 标签类型#创建新的磁盘标签(分区表)mkfs MINOR 文件系统类型#在MINOR创建类型为“文件系统类型”的文件系统mkpart 分区类型[文件系统类型] 起始点终止点#创建一个分区mkpartfs 分区类型文件系统类型起始点终止点#创建一个带有文件系统的分区move MINOR 起始点终止点#移动编号为MINOR 的分区name MINOR 名称#将编号为MINOR 的分区命名为“名称”print [MINOR] #打印分区表,或者分区quit #退出程序rescue 起始点终止点#挽救临近“起始点”、“终止点”的遗失的分区resize MINOR 起始点终止点#改变位于编号为MINOR 的分区中文件系统的大小rm MINOR #删除编号为MINOR 的分区select 设备#选择要编辑的设备set MINOR 标志状态#改变编号为MINOR 的分区的标志操作实例:(parted)表示在parted中输入的命令,其他为自动打印的信息1、首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/sdb:2、选择了/dev/sdb作为我们操作的磁盘,接下来需要创建一个分区表(在parted中可以使用help命令打印帮助信息):(parted) mklabelNew disk label type? (我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)gptWarning: The existing disk label on /dev/sdb will be destroyed and a ll data on this disk will be lost. Do you want to continue?Yes/No?(警告用户磁盘上的数据将会被销毁,询问是否继续,我们这里是新的磁盘,输入yes后回车) y3、创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区的起止位置4、分好区后可以使用print命令打印分区信息,下面是一个print的样例5、如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果(parted)rm 1 #rm后面使用分区的号码(parted) print6、按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例7、由于parted内建的mkfs还不够完善,所以完成以后我们可以使用quit命令退出parted 并使用系统的mkfs命令对分区进行格式化了,此时如果使用fdisk -l命令打印分区表会出现警告信息,这是正常的格式化[root@localhost ~]# mkfs.ext4 /dev/sdb1[root@localhost ~]# mkfs.ext4 /dev/sdb2[root@localhost ~]# mkfs.ext4 /dev/sdb3挂载:[root@localhost ~]# mkdir /mnt/test1[root@localhost ~]# mkdir /mnt/test2[root@localhost ~]# mkdir /mnt/test3[root@localhost ~]# mount /dev/sdb1 /mnt/test1 [root@localhost ~]# mount /dev/sdb2 /mnt/test2 [root@localhost ~]# mount /dev/sdb3 /mnt/test3查看一下,已经挂载上了。
二、Linux系统把/home重新挂载到其他硬盘或分区一开始没有做好规划,导致/home空间不足,再加上分区表不是GPT,导致无法扩展超过2T,因此需要重新划分一块更大的硬盘给/home。
1.把新挂载的4T硬盘进行分区和格式化2.创建目录sudo mkdir /media/home3.把/dev/sdb1挂载到/media/homesudo mount /dev/sdb1 /media/home4.同步/home到/media/home,同步时间根据数据量大小决定,建议在系统空闲时操作sudo rsync -aXS /home/. /media/home/. //在这一步我进行实验的时候,对/orcl文件目录进行操作,报错skiping…,经判断后采用cp –r /orcl /orcl1,因为/orcl目录下还有其他子文件5.同步完成后重命名/homesudo mv /home /home_old6.新建/homesudo mkdir /home7.取消/dev/sdb1挂载sudo umount /dev/sdb18.重新挂载/dev/sdb1到homesudo mount /dev/sdb1 /home9.查看/dev/sdb1的UUIDblkid10.把UUID复制下来,修改/etc/fstab文件,实现开机自动挂载sudo gedit /etc/fstab在文件最后添加如下内容:# home 4TUUID=8da46012-ab9c-434f-a855-2484112fd1a7 /home ext4 nodev,nosuid 0 211.保存之后重启系统,查看分区的挂载情况df –h12.确认一切正常后删除/home_oldsudo rm -rf /home_old至此,给/home增加空间的工作就完成了。
三、LVM XFS增加硬盘分区容量(resize2fs: Bad magic number in super-block while)LVM XFS增加硬盘分区容量(resize2fs: Bad magic number in super-block while)给某个硬盘增加分区之后[root@Mysql01-213-66 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_mysql0121366-LogVol02 7.7G 2.6G 4.8G 36% /tmpfs 495M 0 495M 0% /dev/shm/dev/sda1 194M 29M 155M 16% /boot/dev/mapper/vg_mysql0121366-LogVol01 8.0G 3.1G 5.0G 38% /data这里增加/data大小[root@Mysql01-213-66 ~]# fdisk -l /dev/sdaDisk /dev/sda: 40.8 GB, 40802189312 bytes255 heads, 63 sectors/track, 4960 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000eb81fDevice Boot Start End Blocks Id System/dev/sda1 * 12620480083 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26235018668544 8e Linux LVM进行分区[root@Mysql01-213-66 ~]# fdisk /dev/sdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): nCommand actione extendedp primary partition (1-4)pPartition number (1-4): 3First cylinder (2350-4960, default2350):Using default value 2350Last cylinder, +cylinders or +size{K,M,G} (2350-4960, default4960):Using default value 4960Command (m for help): pDisk /dev/sda: 40.8 GB, 40802189312 bytes255 heads, 63 sectors/track, 4960 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000eb81fDevice Boot Start End Blocks Id System/dev/sda1 * 12620480083 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 26235018668544 8e Linux LVM/dev/sda3 235049602096683283 LinuxCommand (m for help): tPartition number (1-4): 3Hex code (type L to list codes): 8eChanged system type of partition 3 to 8e (Linux LVM)Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.重启服务器或者partprobe创建物理卷[root@Mysql01-213-66 ~]# pvcreate /dev/sda3Physical volume "/dev/sda3" successfully created使用vgscan查询物理卷[root@Mysql01-213-66 ~]# vgscanReading all physical volumes. This may take a while...Found volume group "vg_mysql0121366"using metadata type lvm2使用新增物理卷扩展vg[root@Mysql01-213-66 ~]# vgextend vg_mysql0121366 /dev/sda3Volume group "vg_mysql0121366" successfully extended[root@Mysql01-213-66 ~]# vgscanReading all physical volumes. This may take a while...Found volume group "vg_mysql0121366"using metadata type lvm2查询vg[root@Mysql01-213-66 ~]# vgdisplay--- Volume group ---VG Name vg_mysql0121366System IDFormat lvm2Metadata Areas 2Metadata Sequence No 5VG Access read/writeVG Status resizableMAX LV 0Cur LV 3Open LV 3Max PV 0Cur PV 2Act PV 2VG Size 37.79 GiBPE Size 4.00 MiBTotal PE 9675Alloc PE / Size 4557 / 17.80 GiBFree PE / Size 5118 / 19.99 GiBVG UUID Zy2PVv-xSsx-NEAv-L6ba-G8Oy-tBBq-5zXKQm 查询lv[root@Mysql01-213-66 ~]# lvdisplay--- Logical volume ---LV Path /dev/vg_mysql0121366/LogVol01LV Name LogVol01VG Name vg_mysql0121366LV UUID 5znkJ2-wdeZ-Y2o1-ECDS-gzzl-PqaS-qo2yZR LV Write Access read/writeLV Creation host, time Mysql01-213-66, 2015-08-3020:42:13 +0800 LV Status available# open 1LV Size 8.00 GiBCurrent LE 2048Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:2--- Logical volume ---LV Path /dev/vg_mysql0121366/LogVol00LV Name LogVol00VG Name vg_mysql0121366LV UUID b1FV1n-iKyK-kZ23-glRO-opFh-gDRp-TzWNcLLV Write Access read/writeLV Creation host, time Mysql01-213-66, 2015-08-3020:42:14 +0800LV Status available# open 1LV Size 2.00 GiBCurrent LE 512Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:0--- Logical volume ---LV Path /dev/vg_mysql0121366/LogVol02LV Name LogVol02VG Name vg_mysql0121366LV UUID eoVdk3-cbcP-9PlI-kZBL-6pY2-Jpbl-1WI2uHLV Write Access read/writeLV Creation host, time Mysql01-213-66, 2015-08-3020:42:14 +0800LV Status available# open 1LV Size 7.80 GiBCurrent LE 1997Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block device 253:1[root@Mysql01-213-66 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_mysql0121366-LogVol02 7.7G 2.6G 4.8G 35% /tmpfs 495M 0 495M 0% /dev/shm/dev/sda1 194M 29M 155M 16% /boot/dev/mapper/vg_mysql0121366-LogVol01 8.0G 3.1G 5.0G 38% /data扩展lv[root@Mysql01-213-66 ~]# lvextend -L +19G /dev/mapper/vg_mysql0121366-LogVol01 Extending logical volume LogVol01 to 27.00 GiBLogical volume LogVol01 successfully resized[root@Mysql01-213-66 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_mysql0121366-LogVol02 7.7G 2.6G 4.8G 35% /tmpfs 495M 0 495M 0% /dev/shm/dev/sda1 194M 29M 155M 16% /boot/dev/mapper/vg_mysql0121366-LogVol01 8.0G 3.1G 5.0G 38% /data若不是xfs我们可以用resize2fs,这里报错了[root@Mysql01-213-66 ~]# resize2fs -f /dev/mapper/vg_mysql0121366-LogVol01resize2fs 1.41.12 (17-May-2010)resize2fs: Bad magic number in super-block while trying to open/dev/mapper/vg_mysql0121366-LogVol01Couldn't find valid filesystem superblock.[root@Mysql01-213-66 ~]# xfs_growfs /dev/mapper/vg_mysql0121366-LogVol01meta-data=/dev/mapper/vg_mysql0121366-LogVol01 isize=256 agcount=4, agsize=524288 blks = sectsz=512 attr=2, projid32bit=0data = bsize=4096 blocks=2097152, imaxpct=25= sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0log =internal bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0data blocks changed from2097152 to 7077888[root@Mysql01-213-66 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg_mysql0121366-LogVol02 7.7G 2.6G 4.8G 35% /tmpfs 495M 0 495M 0% /dev/shm/dev/sda1 194M 29M 155M 16% /boot/dev/mapper/vg_mysql0121366-LogVol01 27G 3.1G 24G 12% /data。