Yandex Cloud
August 31, 2022
Добавить второй диск к ВМ
Часто бывает необходимо создать ВМ с несколькими дисками. В этой короткой заметке создадим ВМ с двумя дисками, а потом подключим к ним третий диск. И примонтируем диски к папкам.
SA у нас уже готов: https://teletype.in/@cameda/w93lPMPQWS4
Выберем зону доступности А: https://teletype.in/@cameda/S34zdiTcbUM
Сеть и подсети создали ранее: https://teletype.in/@cameda/ZbTkF70KWK9
SG будем использовать стандартную: https://teletype.in/@cameda/WIoqKmpMNLM
export SG=$(yc vpc sg get cam-default --format=json | jq -r '.id') export FOLDER_ID=$(yc config get folder-id) export ZONE_ID=ru-central1-a export SUBNET_ID=$(yc vpc subnet get subnet-a --format json | jq -r '.id') export SA=$(yc iam service-account get cam-instance-sa --format json | jq -r '.id') yc compute instance create \ --folder-id $FOLDER_ID \ --name cam-disk2 \ --description "Machine with 3 disks" \ --hostname cam-disk2 \ --zone $ZONE_ID \ --platform standard-v3 \ --create-boot-disk image-family=ubuntu-2004-lts,size=30,type=network-ssd,block-size=8K,auto-delete \ --create-disk image-family=ubuntu-2004-lts,size=10,type=network-ssd,block-size=4K,auto-delete \ --image-folder-id standard-images \ --memory 8 \ --cores 4 \ --core-fraction 100 \ --preemptible \ --network-settings type=standard \ --network-interface subnet-id=$SUBNET_ID,nat-ip-version=ipv4,security-group-ids=$SG \ --metadata serial-port-enable=1 \ --ssh-key ~/.ssh/id_rsa.pub \ --service-account-id $SA \ --async
Подключимся к данной ВМ и примонтируем второй диск к директории:
ssh yc-user@IP sudo -i lsblk - посмотрим какие у нас диски и разделы есть blkid - смотрим UUID второго диска Если идентификаторы одинаковые у нескольких дисков, то на одном из них надо Перегенирировать UUID. Например, для /dev/vdb2 sudo e2fsck -f /dev/vdb2 sudo tune2fs -U $(uuidgen) /dev/vdb2
Должно получиться примерно так:
blkid /dev/vda2: UUID="82afb880-9c95-44d6-8df9-84129f3f2cd1" TYPE="ext4" PARTUUID="5aa474f9-767f-4ae4-bf42-d1b1ca657053" /dev/vdb2: UUID="e00e2349-b4ea-42e1-a7a3-beed120435e0" TYPE="ext4" PARTUUID="5aa474f9-767f-4ae4-bf42-d1b1ca657053" /dev/vda1: PARTUUID="ec0944f8-90a5-4e74-9453-d4d8d03bd53d" /dev/vdb1: PARTUUID="ec0944f8-90a5-4e74-9453-d4d8d03bd53d"
Идентификаторы у /dev/vda2 и /dev/vdb2 различаются.
Примонтируем диск к директории на временной основе:
sudo mkdir /mnt/data sudo mount /dev/vdb2 /mnt/data
lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1M 0 part └─vda2 252:2 0 30G 0 part / vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 1M 0 part └─vdb2 252:18 0 5G 0 part /mnt/data
df -h Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 796M 812K 795M 1% /run /dev/vda2 30G 2.4G 26G 9% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 796M 0 796M 0% /run/user/1000 /dev/vdb2 4.9G 2.4G 2.3G 51% /mnt/data
Создадим ещё один диск и примонтируем его к ВМ на постоянной основе:
yc compute disk create \ --folder-id $FOLDER_ID \ --zone $ZONE_ID \ --name third-disk \ --type network-ssd \ --block-size 4K \ --size 12 \ --description "third disk to vm cam-disk2" \ --async
yc compute instance attach-disk cam-disk2 \ --disk-name third-disk \ --auto-delete \ --mode rw \ --async
ssh yc-user@IP sudo -i lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1M 0 part └─vda2 252:2 0 30G 0 part / vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 1M 0 part └─vdb2 252:18 0 5G 0 part /mnt/data vdc 252:32 0 12G 0 disk sudo fdisk /dev/vdc g-->n-->w lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1M 0 part └─vda2 252:2 0 30G 0 part / vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 1M 0 part └─vdb2 252:18 0 5G 0 part /mnt/data vdc 252:32 0 12G 0 disk └─vdc1 252:33 0 12G 0 part
sudo mkfs.ext4 /dev/vdc1 blkid /dev/vda2: UUID="82afb880-9c95-44d6-8df9-84129f3f2cd1" TYPE="ext4" PARTUUID="5aa474f9-767f-4ae4-bf42-d1b1ca657053" /dev/vdb2: UUID="e00e2349-b4ea-42e1-a7a3-beed120435e0" TYPE="ext4" PARTUUID="5aa474f9-767f-4ae4-bf42-d1b1ca657053" /dev/vda1: PARTUUID="ec0944f8-90a5-4e74-9453-d4d8d03bd53d" /dev/vdb1: PARTUUID="ec0944f8-90a5-4e74-9453-d4d8d03bd53d" /dev/vdc1: UUID="5907abd4-21f9-444a-bf7e-2db9336d85fa" TYPE="ext4" PARTUUID="63a5d345-b9c2-f04f-916f-1324e6455677"
mkdir /mnt/data2
vi etc/fstab UUID=82afb880-9c95-44d6-8df9-84129f3f2cd1 / ext4 errors=remount-ro 0 1 UUID=5907abd4-21f9-444a-bf7e-2db9336d85fa /mnt/data2 ext4 errors=remount-ro 0 1
mount -a touch /mnt/data/file && echo "Hello, world!" > file cat file