为XenServer挂载存储及创建本地ISO库

简介

  • 在生产环境中使用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的信息

  • 记录指定LVVG Name
1
lvdisplay /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage

获取分区的UUID

  • 记录指定LVUUID
1
blkid /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage

持久化挂载配置

  • 由于系统重启后并不会自动激活LV,故将激活工作定义为一个服务。
1
vi /etc/systemd/system/activate_iso_storage.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Activate ISO Storage Service
Requires=network-online.target sshd.service
After=network-online.target sshd.service

[Service]
Type=oneshot
ExecStart=/bin/bash /etc/systemd/system/activate_iso_storage.sh
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target
  • 根据实际情况,替换脚本中的VG_NAME与分区UUID的值。
1
vi /etc/systemd/system/activate_iso_storage.sh
1
2
3
4
#!/bin/bash

vgchange -ay VG_NAME --config global{metadata_read_only=0}
mount -t ext4 -o defaults UUID=9e2d1258-f016-43a0-965e-8506875d93f5 /iso
  • 添加为开机自启服务。
1
2
chmod +x /etc/systemd/system/activate_iso_storage.sh
systemctl enable activate_iso_storage.service

挂载分区

  • 根据实际情况,更新分区UUID的值。
1
2
mkdir /iso
mount -t ext4 -o defaults UUID=9e2d1258-f016-43a0-965e-8506875d93f5 /iso

添加到XenServer

1
2
xe sr-create name-label=ISO_Storage type=iso device-config:location=/iso device-config:legacy_mode=true content-type=iso
xe-mount-iso-sr /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
2
3
systemctl disable activate_iso_storage.service
rm -f /etc/systemd/system/activate_iso_storage.service
rm -f /etc/systemd/system/activate_iso_storage.sh

删除本地ISO库

1
lvremove -y /dev/$(vgs | awk 'NR==2{print $1}')/ISO_Storage --config global{metadata_read_only=0}

最后一步

  • 手动在XenCenter上,选中本地ISO库,先分离存储,再销毁存储即可。

请作者喝瓶肥宅快乐水