Проект

Общее

Профиль

Pvreduce » История » Версия 4

Константин Пильник, 2015-06-19 18:05

1 1 Андрей Волков
h1. Уменьшаем жесткий диск с PV
2
3
h2. 1. Уменьшаем фаловые системы.
4
5
h2. 2. Уменьшаем LV разделы
6
7
h2. 3. Уменьшаем PV разделы
8
9
Имеем:
10
<pre>
11
pvs
12
</pre>
13
14
<pre>
15
  PV         VG   Fmt  Attr PSize  PFree 
16
  /dev/vda   safe lvm2 a-   40.00g 32.00g
17
</pre>
18
19
Уменьшаем размер PV.
20
<pre>
21
pvresize --setphysicalvolumesize 9G /dev/vda
22
</pre>
23
24
Есть два варианта вывода для этой команды.
25
26
h3. 3a. Простой (моментальный успех)
27
28
<pre>
29
  Physical volume "/dev/vda" changed
30
  1 physical volume(s) resized / 0 physical volume(s) not resized
31
</pre>
32
33
h3. 3b. Сложный (отложенный успех)
34
35
<pre>
36
  /dev/vda: cannot resize to 2303 extents as later ones are allocated.
37
  0 physical volume(s) resized / 1 physical volume(s) not resized
38
</pre>
39
40
h4. 3b.1. Смотрим, как LV экстенты на располагаются на PV разделе.
41
42
<pre>
43 2 Андрей Волков
lvs --segments -o +seg_pe_ranges
44 1 Андрей Волков
</pre>
45
46
<pre>
47
  LV   VG   Attr   LSize PE Ranges         
48
  root safe -wi-ao 4.00g /dev/vda:0-1023   
49
  srv  safe -wi-ao 2.00g /dev/vda:3584-4095
50
</pre>
51
52
h4. 3b.1. Перераспределяем LV экстенты к началу диска.
53
54
Перебрасываем экстенты, которые располагаются дальше 2303-го
55
<pre>
56
pvmove -i 10 --alloc anywhere -n srv /dev/vda:3584-4095 /dev/vda:1024-1535
57
</pre>
58
59
<pre>
60
  /dev/vda: Moved: 0.0%
61
  /dev/vda: Moved: 35.9%
62
  /dev/vda: Moved: 79.7%
63
  /dev/vda: Moved: 100.0%
64
</pre>
65
66
Смотрим результат:
67
<pre>
68 2 Андрей Волков
lvs --segments -o +seg_pe_ranges
69 1 Андрей Волков
</pre>
70
71
<pre>
72 2 Андрей Волков
  LV   VG   Attr   LSize PE Ranges
73 1 Андрей Волков
  root safe -wi-ao 4.00g /dev/vda:0-1023
74
  srv  safe -wi-ao 2.00g /dev/vda:1024-1535
75
</pre>
76
77
h4. 3b.2. Изменяем размер диска:
78
79
<pre>
80
pvresize --setphysicalvolumesize 9G /dev/vda
81
</pre>
82
83
<pre>
84
  Physical volume "/dev/vda" changed
85
  1 physical volume(s) resized / 0 physical volume(s) not resized
86
</pre>
87
88
h3. 4. Результат:
89
90
<pre>
91
pvs
92
</pre>
93
94
<pre>
95
  PV         VG   Fmt  Attr PSize PFree
96
  /dev/vda   safe lvm2 a-   9.00g 3.00g
97
</pre>
98 3 Константин Пильник
99
h3. 5. Если жесткий диск на машине qemu
100
101
Сначала уменьшить раздел на хосте, а затем уменьшить блочное устройство в qmp-интерфейсе.
102
Размер можно указать 0
103
104
<pre>
105
ondatra ~ # qmp-shell /run/qemu/qemu322.control.sock 
106
Welcome to the QMP low-level shell!
107
Connected to QEMU 2.2.1
108
109
(QEMU) block_resize device=disk-322-obama-test size=0
110
{u'return': {}}
111
(QEMU) 
112 1 Андрей Волков
</pre>
113 4 Константин Пильник
114
*ВАЖНО* pv-раздел для метаданных использует 1экстент, => , если экстент = 4m, то 1мб в начале раздела, и 3мб в конце.
115
Выделять на хост-системе нужно с учетом 1 гостевого экстента.
116
117
<pre>
118
 pvdisplay 
119
  --- Physical volume ---
120
  PV Name               /dev/vdb
121
  VG Name               test
122
  PV Size               3.00 GiB / not usable 3.00 MiB
123
  Allocatable           yes (but full)
124
  PE Size               4.00 MiB
125
  Total PE              768
126
  Free PE               0
127
  Allocated PE          768
128
  PV UUID               3mt3f3-NtZu-0a4h-zgj1-x80J-qL0U-QHUMUd
129
</pre>
130
131
*PE Size               4.00 MiB*