Linux運維基礎交換分區和lvm管理教程

1.交換分區SWAP

交換分區一般指定虛擬內存的大小為實際內存的1~1.5倍。如果實際內存超過8GB,可以直接劃分16GB給虛擬內存即可,如果虛擬內存不夠用的情況,須增加一個虛擬磁盤,由於不能給原有的磁盤重新分區,所以可以選擇新建。

1.1創建swapfile

[root@clq0917 ~]# dd if=/dev/zero of=/opt/www bs=1M count=1024
記錄瞭1024+0 的讀入
記錄瞭1024+0 的寫出
1073741824字節(1.1 GB)已復制,10.7409 秒,100 MB/秒
[root@clq0917 ~]# 

1.2格式化swap分區

[root@clq0917 ~]# mkswap -f /opt/www
正在設置交換空間版本 1,大小 = 1048572 KiB
無標簽,UUID=9928fe54-9639-4dd9-90ef-82d3f69e94fe
[root@clq0917 ~]# 

1.3檢測當前swap分區情況

[root@clq0917 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1840       1304        535          8          1       1115
-/+ buffers/cache:        188       1652
Swap:         2047          0       2047
[root@clq0917 ~]# 

1.4開啟新建的SWAP分區

[root@clq0917 ~]# swapon /opt/www
swapon: /opt/www:不安全的權限 0644,建議使用 0600。
//使用權限命令
[root@clq0917 ~]# chown 600 /opt/www
[root@clq0917 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1840       1305        535          8          1       1115
-/+ buffers/cache:        188       1651
Swap:         3071          0       3071//swap分區多出來1G

1.5關閉新建的swap分區

[root@clq0917 ~]# swapoff /opt/www
[root@clq0917 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1840       1304        535          8          1       1115
-/+ buffers/cache:        188       1652
Swap:         2047          0       2047//還原到沒有增加虛擬磁盤

1.6給新區增加一個交換分區swap

1.[root@clq0917 ~]# fdisk -l /dev/sdb
磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x1f8fccca
   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      393215      195584   83  Linux
/dev/sdb2          393216    41943039    20774912    5  Extended
/dev/sdb5          395264      589823       97280   82  Linux swap  ~準備該區為交換分區
2.把分區類型改為82
命令(輸入 m 獲取幫助):l
 0  空              24  NEC DOS         81  Minix / 舊 Linu bf  Solaris        
 1  FAT12           27  隱藏的 NTFS Win 82  Linux 交換 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隱藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 擴展      c7  Syrinx         
 5  擴展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系統數據 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 純文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可啟動      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 訪問       
 a  OS/2 啟動管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 擴展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隱藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
命令(輸入 m 獲取幫助):t       
分區號 (1,2,5,默認 5):5
Hex 代碼(輸入 L 列出所有代碼):82
已將分區“Linux”的類型更改為“Linux swap / Solaris”
命令(輸入 m 獲取幫助):p
磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0x1f8fccca
   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      393215      195584   83  Linux
/dev/sdb2          393216    41943039    20774912    5  Extended
/dev/sdb5          395264      589823       97280   82  Linux swap / Solaris
命令(輸入 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 at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盤。
3.更新一下
[root@clq0917 ~]# partprobe /dev/sdb5
4.把sdb5作為交換分區
[root@clq0917 ~]# mkswap /dev/sdb5
正在設置交換空間版本 1,大小 = 97276 KiB
無標簽,UUID=d146ac2b-6d08-4b9b-b18d-0b1fc0f3896e
5.啟動交換分區
[root@clq0917 ~]# swapon /dev/sdb5
查看
[root@clq0917 ~]# swapon -s
文件名				類型		大小	已用	權限
/dev/dm-1                              	partition	2097148	0	-1
/dev/sdb5                              	partition	97276	0	-2
6.長久保存分區使用
[root@clq0917 ~]# blkid /dev/sdb5
/dev/sdb5: UUID="d146ac2b-6d08-4b9b-b18d-0b1fc0f3896e" TYPE="swap"
[root@clq0917 ~]# vi /etc/fstab
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
UUID="00e35670-d6c9-44d1-8e8c-f52bd71edf59" /mnt  xfs  defaults   0 0
UUID="d146ac2b-6d08-4b9b-b18d-0b1fc0f3896e"  swap swap   defaults 0 0
~                                                                     

2. lvm管理

步驟lvm

1.添加物理磁盤,創建物理卷
2.創建卷組,將物理卷加入卷組
3.在 卷組在劃分邏輯卷
4.格式化邏輯卷
5.掛載使用

1.準備物理磁盤(加磁盤參考上一博客)

上一篇鏈接Linux運維基礎系統磁盤管理教程

[root@clq0917 ~]# lsblk |grep "sd[cd]"
sdc             8:32   0   20G  0 disk 
sdd             8:48   0   20G  0 disk 
查看pv創建情況
[root@clq0917 ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  rhel lvm2 a--  19.51g     0 
  /dev/sdc        lvm2 a--  20.00g 20.00g
2.創建名字為hongmao的卷組
[root@clq0917 ~]# vgcreate hongmao /dev/sdc
  Volume group "hongmao" successfully created
檢查卷組
[root@clq0917 ~]# vgs
  VG      #PV #LV #SN Attr   VSize  VFree 
  hongmao   1   0   0 wz--n- 20.00g 20.00g
  rhel      1   2   0 wz--n- 19.51g     0 
3.創建邏輯卷,分配名稱,以及大小,制定卷組
[root@clq0917 ~]# lvcreate -L 1000M -n lv1 hongmao
  Logical volume "lv1" created
 檢查邏輯卷
 [root@clq0917 ~]# lvs
lvs     lvscan  
[root@clq0917 ~]# lvscan
  ACTIVE            '/dev/hongmao/lv1' [1000.00 MiB] inherit
  ACTIVE            '/dev/rhel/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/rhel/root' [17.51 GiB] inherit
 4.格式化文件系統
 [root@clq0917 ~]# mkfs.xfs /dev/hongmao/lv1
meta-data=/dev/hongmao/lv1       isize=256    agcount=4, agsize=64000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=256000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
5.臨時掛載
[root@clq0917 ~]# mkdir /lv1
[root@clq0917 ~]# mount /dev/hongmao/lv1 /lv1/
[root@clq0917 ~]# df -h
文件系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/rhel-root     18G  1.8G   16G   11% /
devtmpfs                 915M     0  915M    0% /dev
tmpfs                    921M     0  921M    0% /dev/shm
tmpfs                    921M  8.6M  912M    1% /run
tmpfs                    921M     0  921M    0% /sys/fs/cgroup
/dev/sdb1                188M  9.8M  178M    6% /mnt
/dev/sda1                497M   96M  401M   20% /boot
/dev/mapper/hongmao-lv1  997M   33M  965M    4% /lv1

3.卷組管理

擴展卷組,將新磁盤加入卷組

1.新磁盤加入pv
[root@clq0917 ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created
2.使用vgextend擴展
[root@clq0917 ~]# vgextend hongmao /dev/sdd
  Volume group "hongmao" successfully extended
***3將指定的磁盤從卷組中刪除(一般不刪)
bgreduce hongmao /dev/sdd
4.數據遷移卷組,同一的磁盤才可以進行在線遷移
檢查當前邏輯卷vg中pv使用情況
[root@clq0917 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  rhel    lvm2 a--  19.51g     0 
  /dev/sdc   hongmao lvm2 a--  20.00g 19.02g
  /dev/sdd   hongmao lvm2 a--  20.00g 20.00g
pvmove在線數據遷移至其它pv
[root@clq0917 ~]# pvmove /dev/sdc
  /dev/sdc: Moved: 27.6%
  /dev/sdc: Moved: 100.0%
[root@clq0917 ~]# pvs
  PV         VG      Fmt  Attr PSize  PFree 
  /dev/sda2  rhel    lvm2 a--  19.51g     0 
  /dev/sdc   hongmao lvm2 a--  20.00g 20.00g
  /dev/sdd   hongmao lvm2 a--  20.00g 19.02g

4.邏輯卷管理

邏輯卷擴展的容量不能超過卷組的容量

1.增加999M分配給邏輯卷(999 +999是不一樣的)
[root@clq0917 ~]# lvextend -L +999M  /dev/hongmao/lv1
  Rounding size to boundary between physical extents: 1000.00 MiB
  Extending logical volume lv1 to 1.95 GiB
  Logical volume lv1 successfully resized
  分配磁盤池至多少百分比給邏輯卷(50%約等於499)
  [root@clq0917 ~]# lvextend -l +50%free /dev/hongmao/lv1
  Extending logical volume lv1 to 20.97 GiB
  Logical volume lv1 successfully resized
***文件系統擴展
xfs--->xfs_growfs /dev/hongmao/lv1
ext--->resize2fs /dev/hongmao/lv1

對ext4文件系統的邏輯卷裁剪容量

首先自己創建一個1G的邏輯卷作為裁剪的對象

lvcreate -n uplooking -L 1G finance
mkfs.ext4 /dev/finance/uplooking
#mkdir -p /finance/uplooking
#mount /dev/finance/uplooking /finance/uplooking/
#cp /etc/host* /finance/uplooking/

1、如果已經掛載,必須先卸載

umount /dev/finance/uplooking

2、裁剪容量,必須是先檢測文件系統

e2fsck -f /dev/finance/uplooking
resize2fs /dev/finance/uplooking 512M

3、調整完畢後采取裁剪邏輯卷容量

lvreduce -L 512M /dev/finance/uplooking
WARNING: Reducing active logical volume to 512.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce uplooking? [y/n]: y

4、強烈建議裁剪後,再次檢測文件系統

e2fsck -f /dev/finance/uplooking

5、掛載測試

如果能夠掛載,一般說明裁剪成功,文件系統沒有損壞

mount /dev/finance/uplooking /mnt

/dev/mapper/finance-uplooking 472M 1.6M 435M 1% /mnt 而且文件系統容量被刷新瞭

  • 縮減邏輯卷註意事項:
  • 不能在線縮減,得先卸載;
  • 確保縮減後的空間大小依然能存儲原有的所有數據;
  • 在縮減之前應該先強行檢查文件,以確保文件系統處於一致性狀態。
  • 使用命令

e2fsck -f /PATH/TO/LV

以上就是Linux運維基礎交換分區和lvm管理教程的詳細內容,更多關於Linux運維管理的資料請關註WalkonNet其它相關文章!

推薦閱讀: