简介
- 在生产环境中使用
XenServer
的过程中,由于不同的需求,可能需要我们管理(添加,删除)额外的存储以及管理(添加、删除)本地的ISO
库。 - 在本文中,将对如何管理额外的存储及本地
ISO
库作出讲解。
额外的存储
添加操作
获取磁盘信息
1 | lsblk |
清除磁盘的数据
1 | sgdisk --zap-all -- /dev/nvme0n1 |
划分分区表
1 | parted /dev/nvme0n1 -s -- mklabel gpt mkpart Local_Storage_2 ext4 1 -1 |
格式化分区
1 | mkfs.ext4 /dev/nvme0n1p1 |
获取分区的UUID
- 方式一:
1 | blkid /dev/nvme0n1p1 |
- 方式二:
1 | echo "/dev/disk/by-partuuid/$(ll /dev/disk/by-partuuid/ | grep 'nvme0n1p1' | awk '{print $9}')" |
添加到XenServer
- 根据实际情况,更新
device
的值。
1 | xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-partuuid/f76182d3-1890-4436-bc04-70977be306c5 name-label="Local_Storage_2" |
删除操作
获取SR的UUID
1 | xe sr-list name-label="Local_Storage_2" |
获取对应PBD的UUID
- 根据实际情况,更新
sr-uuid
的值。
1 | xe pbd-list sr-uuid="4c5004ea-8950-0c4f-8da2-9bf52197aadf" |
卸载PBD
- 根据实际情况,更新
uuid
的值。
1 | xe pbd-unplug uuid="43eee046-bc51-3f27-4d70-112b53972710" |
删除SR
- 根据实际情况,更新
uuid
的值。
1 | xe sr-forget uuid="4c5004ea-8950-0c4f-8da2-9bf52197aadf" |
本地ISO库
添加操作
获取VG的信息
1 | vgs |
创建本地ISO库
- 请选择适当的
VG
创建LV
。
1 | lvcreate -L 200G -n ISO_Storage $(vgs | awk 'NR==2{print $1}') --config global{metadata_read_only=0} |
格式化分区
1 | mkfs.ext4 /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage |
获取LV的信息
- 记录指定
LV
的VG Name
。
1 | lvdisplay /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage |
获取分区的UUID
- 记录指定
LV
的UUID
。
1 | blkid /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage |
持久化挂载配置
- 由于系统重启后并不会自动激活
LV
,故将激活工作定义为一个服务。
1 | vi /etc/systemd/system/activate_iso_storage.service |
1 | [Unit] |
- 根据实际情况,替换脚本中的
VG_NAME
与分区UUID
的值。
1 | vi /etc/systemd/system/activate_iso_storage.sh |
1 | #!/bin/bash |
- 添加为开机自启服务。
1 | chmod +x /etc/systemd/system/activate_iso_storage.sh |
挂载分区
- 根据实际情况,更新分区
UUID
的值。
1 | mkdir /iso |
添加到XenServer
1 | xe sr-create name-label=ISO_Storage type=iso device-config:location=/iso device-config:legacy_mode=true content-type=iso |
删除操作
- 先将本地
ISO
库中所有的ISO
镜像都删除掉。
显示LV的信息
1 | lvdisplay /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage |
卸载指定设备
1 | umount /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage |
删除挂载配置
1 | systemctl disable activate_iso_storage.service |
删除本地ISO库
1 | lvremove -y /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage --config global{metadata_read_only=0} |
最后一步
- 手动在
XenCenter
上,选中本地ISO
库,先分离存储,再销毁存储即可。