2019/03/22
設定 Ubuntu 18 的 hostname
在 Ubuntu 18 中, 設定 hostname 不像是以前可以直接下 hostname 指令
而是要利用 hostnamectl 去做設定, 如下
```
$ sudo hostnamectl set-hostname new-name
```
2019/03/14
LVM 增加新硬碟以增加容量
最近在幹大事, 之前掛載硬碟一下子就不夠用了
幸好當初是用 LVM 方式創建的
所以只要加入一顆硬碟並且加入到 Volume Group 就可以增加空間了
步驟如下:
原先可用空間剩下 9%
```shell
$ df
/dev/mapper/VG1-DATA 308583232 266262416 26576000 91% /data
```
看一下有哪些 Physical Volume
```shell
$ sudo lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda3 [ <19.00 GiB] LVM physical volume
/dev/sdb [ 300.00 GiB] LVM physical volume
1 LVM physical volume whole disks
1 LVM physical volume
```
在新硬碟建立 PV
```shell
$ sudo pvcreate /dev/sdc
```
看看是否建成功
```shell
$ sudo lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda3 [ <19.00 GiB] LVM physical volume
/dev/sdb [ 300.00 GiB] LVM physical volume
/dev/sdc [ 300.00 GiB] LVM physical volume
2 LVM physical volume whole disks
1 LVM physical volume
```
很好, /dev/sdc 也變成 PV 了
接下來把 /dev/sdc 加入到 Volume Group 中
```shell
# 要加入的 Volume Group 名稱為 VG1
$ sudo vgextend VG1 /dev/sdc
```
把 Logic Volume 延伸 (步驟同 增大 Ubuntu 18.04 上 root lvm volume )
```shell
# 延伸 LV
$ sudo lvextend -l +100%FREE /dev/VG1/DATA
# 調整 ext4 大小
$ sudo resize2fs -p /dev/mapper/VG1-DATA
```
可用空間變成 54% 了
```shell
$ df
/dev/mapper/VG1-DATA 618214560 266267944 323619528 46% /data
```
可以繼續幹大事了
從 -flat.vmdk 還原為 .vmdk
由於一時手殘, 不小心把 VM 的檔案全刪了, 幸好 VM 是開啟的狀態, 所以 -flat.vmdk 沒有被刪除
那麼該怎麼還原呢
首先先查看你的 -flat.vmdk 檔案
```
$ ls -al
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
```
只剩下兩個 -flat.vmdk
先記下來 這兩個檔案的大小 322122547200 跟 21474836480
實際上還原的指令是:
```
$ vmkfstools -c 322122547200 -a pvscsi -d thin restore-1.vmdk
$ vmkfstools -c 21474836480 -a pvscsi -d thin restore.vmdk
```
其中 -a 的參數是你創建的 SCSI Controller
我是 VMware Paravirtual 則填 pvscsi
也有可能是 LSI Logic 則填 lsilogic
vmkfstools 指令執行完後會產生四個新檔案 ls 看一下
```
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
-rw------- 1 root root 322122547200 Mar 14 05:37 restore-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 restore-flat.vmdk
-rw------- 1 root root 478 Mar 14 05:37 restore-1.vmdk
-rw------- 1 root root 528 Mar 14 05:37 restore.vmdk
```
接下來重點就是 把產生的 restore-1-flat.vmdk 跟 restore-flat.vmdk 刪除
並且重新命名 vm-1-flat.vmdk 跟 vm-flat.vmdk 為 restore-1-flat.vmdk 跟 restore-flat.vmdk
這樣磁碟裡的資料才會回來
那麼該怎麼還原呢
首先先查看你的 -flat.vmdk 檔案
```
$ ls -al
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
```
只剩下兩個 -flat.vmdk
先記下來 這兩個檔案的大小 322122547200 跟 21474836480
實際上還原的指令是:
```
$ vmkfstools -c 322122547200 -a pvscsi -d thin restore-1.vmdk
$ vmkfstools -c 21474836480 -a pvscsi -d thin restore.vmdk
```
其中 -a 的參數是你創建的 SCSI Controller
我是 VMware Paravirtual 則填 pvscsi
也有可能是 LSI Logic 則填 lsilogic
vmkfstools 指令執行完後會產生四個新檔案 ls 看一下
```
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
-rw------- 1 root root 322122547200 Mar 14 05:37 restore-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 restore-flat.vmdk
-rw------- 1 root root 478 Mar 14 05:37 restore-1.vmdk
-rw------- 1 root root 528 Mar 14 05:37 restore.vmdk
```
接下來重點就是 把產生的 restore-1-flat.vmdk 跟 restore-flat.vmdk 刪除
並且重新命名 vm-1-flat.vmdk 跟 vm-flat.vmdk 為 restore-1-flat.vmdk 跟 restore-flat.vmdk
這樣磁碟裡的資料才會回來
2019/01/29
LVM 建置指令
每次要建lvm都忘記指令,來記錄一下
```shell
# 先建置分割區, 並且 type 設為8e
# 其實我不太了解如果都是用整顆硬碟的空間, 那麼要不要做這個步驟的差別是什麼(效能?對齊?其他?)
# fdisk <device Point>
$ fdisk /dev/xvdb
# 建立 Physical Volume
# pvcreate <device Partition>
$ pvcreate /dev/xvdb1
# 建立 Volume Group
# vgcreate <vg Name> <device Partition>
$ vgcreate VG1 /dev/xvdb1
# 建立 Logical Volume
# lvcreate -l 100%FREE -n <lv Name> <vg Name>
$ lvcreate -l 100%FREE -n DATA VG1
# 格式化
# mkfs.ext4 -L <label> /dev/<vg Name>/<lv Name>
$ mkfs.ext4 -L DATA /dev/VG1/DATA
# 開機自動掛載
echo "LABEL=DATA /data ext4 defaults 0 0" >> /etc/fstab
```
重灌作業系統後 使用 mdadm 重組你的 raid
前些時間因為升級 ubuntu 版本失敗導致必需重灌
然後就出現以下問題了
當初建好的 RAID5 消失了, 新的 os 不認識它所以顯示成三顆硬碟
這該怎麼辦呢?
其實不用擔心, 由於我們當時是用 mdadm 建置的, mdadm 有方法可以再把它們組起來
```shell
$ mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1
```
平時資料還是要多多備份啊
2018/12/19
增大 Ubuntu 18.04 上 root lvm volume
昨天剛灌的機器今天磁碟就滿了, 怎麼可能?
一看, 原來當初給主磁碟 20G 空間 Ubuntu 18.04 只先配置 LV 4G 的空間, 難怪空間爆炸了
所以其實 PV 上空間還是夠的, 這時候就是把 LV 重新設定大小就好了
如果是用 lvextend 則會報錯:
```bash
$ sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
/etc/lvm/archive/.lvm_template_2310_1202205345: write error failed: No space left on device
```
正確步驟:
```bash
# 1. 用 lvresize
$ sudo lvresize -A n -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to <19.00 GiB (4863 extents)
WARNING: This metadata update is NOT backed up.
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
# 2. resize ext4
$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 4979712 (4k) blocks long.
# 3. df 看一下
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 19540624 4050844 14634724 22% /
```
2018/12/17
增大 EBS 磁碟容量後 LVM 要做的事情
前情提要:
1. 磁碟採用 NVME 介面(t3, m5, c5, r5)
2. 原先建置 LVM 時是用整顆磁碟, 所以裝置下只會有 /dev/nvme1n1 不會有 /dev/nvme1n1p1
增大前先看一下 lvm 配置
```sh
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme1n1
VG Name VG1
PV Size 50.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 12799
Free PE 0
Allocated PE 12799
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/VG1/DATA
LV Name DATA
VG Name VG1
LV Write Access read/write
LV Creation host, time ip-172-31-37-10, 2018-10-08 09:05:34 +0000
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12799
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
$ sudo vgdisplay
--- Volume group ---
VG Name VG1
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 50.00 GiB
PE Size 4.00 MiB
Total PE 12799
Alloc PE / Size 12799 / 50.00 GiB
Free PE / Size 0 / 0
```
在 ebs 頁面把該磁碟加大到100G後 直接跑 resize2fs 發現沒有做用
研究了一下發現需要先做 pvresize,做完後 pv 的確變成 100G 了
```sh
$ sudo pvresize /dev/nvme1n1
Physical volume "/dev/nvme1n1" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/nvme1n1
VG Name VG1
PV Size 100.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25599
Free PE 12800
Allocated PE 12799
```
看一下 lv,還是 50G 沒變
```sh
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/VG1/DATA
LV Name DATA
VG Name VG1
LV Write Access read/write
LV Creation host, time ip-172-31-37-10, 2018-10-08 09:05:34 +0000
LV Status available
# open 1
LV Size 50.00 GiB
Current LE 12799
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
```
lv 也要 resize一下,這邊把它稱大到所有的可用空間 +100%FREE
```sh
$ sudo lvresize -l +100%FREE /dev/mapper/VG1-DATA
Size of logical volume VG1/DATA changed from 50.00 GiB (12799 extents) to 100.00 GiB (25599 extents).
Logical volume DATA successfully resized.
```
lv resize 完後看一下,恩 變大了
```sh
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/VG1/DATA
LV Name DATA
VG Name VG1
LV Write Access read/write
LV Creation host, time ip-172-31-37-10, 2018-10-08 09:05:34 +0000
LV Status available
# open 1
LV Size 100.00 GiB
Current LE 25599
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
$ sudo vgdisplay
--- Volume group ---
VG Name VG1
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
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 100.00 GiB
PE Size 4.00 MiB
Total PE 25599
Alloc PE / Size 25599 / 100.00 GiB
Free PE / Size 0 / 0
```
不過用 df 看 還是沒變大
```sh
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VG1-DATA 51470972 48766280 67076 100% /data
```
跑 resize2fs 後就正常了
```sh
$ sudo resize2fs /dev/mapper/VG1-DATA
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/VG1-DATA is mounted on /data; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 7
The filesystem on /dev/mapper/VG1-DATA is now 26213376 (4k) blocks long.
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VG1-DATA 103077152 48774260 49568340 50% /data
```
訂閱:
文章 (Atom)