Skip to content

Commit d0b310f

Browse files
authored
[Backport stable-25-3] Initial virtual groups (#28298)
2 parents fc7f285 + 72dc509 commit d0b310f

File tree

4 files changed

+129
-7
lines changed

4 files changed

+129
-7
lines changed
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 YaBrowser/25.8.0.0 Safari/537.36" version="28.2.7">
2+
<diagram name="Страница — 1" id="J0uTW6giYVTPpnwpSZtR">
3+
<mxGraphModel dx="2066" dy="1062" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-1" value="Tablet 1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
8+
<mxGeometry x="190" y="170" width="120" height="60" as="geometry" />
9+
</mxCell>
10+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-3" target="Pjcnsb4VpGuC-l-LkhOH-22">
11+
<mxGeometry relative="1" as="geometry" />
12+
</mxCell>
13+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-3" value="DSProxy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
14+
<mxGeometry x="120" y="260" width="120" height="60" as="geometry" />
15+
</mxCell>
16+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-5" target="Pjcnsb4VpGuC-l-LkhOH-23">
17+
<mxGeometry relative="1" as="geometry" />
18+
</mxCell>
19+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-5" value="DSProxy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
20+
<mxGeometry x="260" y="260" width="120" height="60" as="geometry" />
21+
</mxCell>
22+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.842;entryY=0.033;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-1" target="Pjcnsb4VpGuC-l-LkhOH-3">
23+
<mxGeometry relative="1" as="geometry" />
24+
</mxCell>
25+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.167;entryY=0.033;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-1" target="Pjcnsb4VpGuC-l-LkhOH-5">
26+
<mxGeometry relative="1" as="geometry" />
27+
</mxCell>
28+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-38" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-9" target="Pjcnsb4VpGuC-l-LkhOH-11">
29+
<mxGeometry relative="1" as="geometry" />
30+
</mxCell>
31+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-9" value="VDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
32+
<mxGeometry x="120" y="500" width="120" height="60" as="geometry" />
33+
</mxCell>
34+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-11" target="Pjcnsb4VpGuC-l-LkhOH-12">
35+
<mxGeometry relative="1" as="geometry" />
36+
</mxCell>
37+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-11" value="PDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
38+
<mxGeometry x="190" y="610" width="120" height="60" as="geometry" />
39+
</mxCell>
40+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-12" value="Hardware Storage (HDD, SDD)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
41+
<mxGeometry x="190" y="685" width="120" height="60" as="geometry" />
42+
</mxCell>
43+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-40" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-14" target="Pjcnsb4VpGuC-l-LkhOH-20">
44+
<mxGeometry relative="1" as="geometry" />
45+
</mxCell>
46+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-14" value="VDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
47+
<mxGeometry x="400" y="500" width="120" height="60" as="geometry" />
48+
</mxCell>
49+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-39" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-16" target="Pjcnsb4VpGuC-l-LkhOH-11">
50+
<mxGeometry relative="1" as="geometry" />
51+
</mxCell>
52+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-16" value="VDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
53+
<mxGeometry x="260" y="500" width="120" height="60" as="geometry" />
54+
</mxCell>
55+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-18" target="Pjcnsb4VpGuC-l-LkhOH-20">
56+
<mxGeometry relative="1" as="geometry" />
57+
</mxCell>
58+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-18" value="VDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
59+
<mxGeometry x="540" y="500" width="120" height="60" as="geometry" />
60+
</mxCell>
61+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-20" target="Pjcnsb4VpGuC-l-LkhOH-21">
62+
<mxGeometry relative="1" as="geometry" />
63+
</mxCell>
64+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-20" value="PDisk" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
65+
<mxGeometry x="480" y="610" width="120" height="60" as="geometry" />
66+
</mxCell>
67+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-21" value="Hardware Storage (HDD, SDD)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
68+
<mxGeometry x="480" y="685" width="120" height="60" as="geometry" />
69+
</mxCell>
70+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-22" target="Pjcnsb4VpGuC-l-LkhOH-14">
71+
<mxGeometry relative="1" as="geometry" />
72+
</mxCell>
73+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-22" value="Storage Group" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
74+
<mxGeometry x="120" y="410" width="240" height="30" as="geometry" />
75+
</mxCell>
76+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-35" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-23" target="Pjcnsb4VpGuC-l-LkhOH-16">
77+
<mxGeometry relative="1" as="geometry">
78+
<Array as="points">
79+
<mxPoint x="508" y="480" />
80+
<mxPoint x="320" y="480" />
81+
</Array>
82+
</mxGeometry>
83+
</mxCell>
84+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-23" target="Pjcnsb4VpGuC-l-LkhOH-18">
85+
<mxGeometry relative="1" as="geometry" />
86+
</mxCell>
87+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-23" value="Storage Group" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
88+
<mxGeometry x="440" y="410" width="270" height="30" as="geometry" />
89+
</mxCell>
90+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-26" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-22">
91+
<mxGeometry width="50" height="50" relative="1" as="geometry">
92+
<mxPoint x="179.67" y="450" as="sourcePoint" />
93+
<mxPoint x="179.67" y="500" as="targetPoint" />
94+
<Array as="points">
95+
<mxPoint x="179.67" y="460" />
96+
</Array>
97+
</mxGeometry>
98+
</mxCell>
99+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-44" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-42" target="Pjcnsb4VpGuC-l-LkhOH-43">
100+
<mxGeometry relative="1" as="geometry" />
101+
</mxCell>
102+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-42" value="Tablet 2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
103+
<mxGeometry x="540" y="170" width="120" height="60" as="geometry" />
104+
</mxCell>
105+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="Pjcnsb4VpGuC-l-LkhOH-43" target="Pjcnsb4VpGuC-l-LkhOH-23">
106+
<mxGeometry relative="1" as="geometry" />
107+
</mxCell>
108+
<mxCell id="Pjcnsb4VpGuC-l-LkhOH-43" value="DSProxy" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
109+
<mxGeometry x="540" y="260" width="120" height="60" as="geometry" />
110+
</mxCell>
111+
</root>
112+
</mxGraphModel>
113+
</diagram>
114+
</mxfile>
48.1 KB
Loading

ydb/docs/ru/core/concepts/architecture.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,13 @@ Data shard также автоматически разделяются при
9292

9393
### Внутреннее устройство распределенного хранилища
9494

95-
![Внутреннее устройство распределенного хранилища](https://storage.yandexcloud.net/ydb-www-prod-site-assets/howitworks/distributed.png)
95+
![Внутреннее устройство распределенного хранилища](./_assets/storage.png)
9696

97-
{{ ydb-short-name }} не полагается на сторонние файловые системы. Она хранит данные, работая непосредственно с дисковыми накопителями как блочными устройствами. Поддерживаются все основные типы дисков: NVMe, SSD или HDD. За работу с конкретным блочным устройством отвечает компонент PDisk. Уровень абстракции выше PDisk называется VDisk. Также есть специальный компонент, называемый DSProxy, между таблеткой и VDisk. DSProxy анализирует доступность и характеристики дисков и выбирает, какие диски будут обрабатывать запрос, а какие нет.
97+
{{ ydb-short-name }} не полагается на сторонние файловые системы. Вместо этого она работает непосредственно с дисковыми накопителями как с блочными устройствами. Поддерживаются различные типы дисков: NVMe, SSD и HDD — подробнее об этом можно узнать в [системных требованиях](../devops/concepts/system-requirements.md). За работу с конкретным блочным устройством отвечает компонент [PDisk](./glossary.md#pdisk), который взаимодействует непосредственно с физическим диском. Уровень абстракции выше PDisk называется [VDisk](./glossary.md#vdisk).
98+
99+
Между VDisk и компонентами, непосредственно работающими с данными приложений, существует еще один слой абстракции — [Storage Group](./glossary.md#storage-group). Storage Group объединяет несколько VDisk'ов между собой и обеспечивает необходимые [режимы записи данных](./topology.md#cluster-config) для отказоустойчивости.
100+
101+
Входной точкой в распределённое хранилище является [DS-Proxy](./glossary.md#ds-proxy) (distributed storage proxy). DS-Proxy скрывает распределённую природу хранилища и позволяет таблеткам записывать и читать данные, не заботясь о деталях взаимодействия с VDisk и Storage Group.
98102

99103
### Прокси распределенного хранилища (DSProxy)
100104

0 commit comments

Comments
 (0)