]> git.proxmox.com Git - pve-docs.git/blame - pve-storage-dir.adoc
update link qemu documentation non web.archive
[pve-docs.git] / pve-storage-dir.adoc
CommitLineData
8119f671 1[[storage_directory]]
aa039b0f
DM
2Directory Backend
3-----------------
5f09af76
DM
4ifdef::wiki[]
5:pve-toplevel:
cb84ed18 6:title: Storage: Directory
5f09af76
DM
7endif::wiki[]
8
aa039b0f
DM
9Storage pool type: `dir`
10
11{pve} can use local directories or locally mounted shares for
12storage. A directory is a file level storage, so you can store any
13content type like virtual disk images, containers, templates, ISO images
14or backup files.
15
8c1189b6 16NOTE: You can mount additional storages via standard linux `/etc/fstab`,
aa039b0f
DM
17and then define a directory storage for that mount point. This way you
18can use any file system supported by Linux.
19
20This backend assumes that the underlying directory is POSIX
21compatible, but nothing else. This implies that you cannot create
871e1fd6 22snapshots at the storage level. But there exists a workaround for VM
aa039b0f
DM
23images using the `qcow2` file format, because that format supports
24snapshots internally.
25
871e1fd6 26TIP: Some storage types do not support `O_DIRECT`, so you can't use
aa039b0f
DM
27cache mode `none` with such storages. Simply use cache mode
28`writeback` instead.
29
30We use a predefined directory layout to store different content types
871e1fd6 31into different sub-directories. This layout is used by all file level
aa039b0f
DM
32storage backends.
33
34.Directory layout
35[width="100%",cols="d,m",options="header"]
36|===========================================================
37|Content type |Subdir
8c1189b6
FG
38|VM images |`images/<VMID>/`
39|ISO images |`template/iso/`
40|Container templates |`template/cache/`
41|Backup files |`dump/`
c2c8eb89 42|Snippets |`snippets/`
aa039b0f
DM
43|===========================================================
44
5eba0743 45
aa039b0f
DM
46Configuration
47~~~~~~~~~~~~~
48
49This backend supports all common storage properties, and adds an
50additional property called `path` to specify the directory. This
51needs to be an absolute file system path.
52
8c1189b6 53.Configuration Example (`/etc/pve/storage.cfg`)
aa039b0f
DM
54----
55dir: backup
56 path /mnt/backup
57 content backup
58 maxfiles 7
59----
60
61Above configuration defines a storage pool called `backup`. That pool
62can be used to store up to 7 backups (`maxfiles 7`) per VM. The real
8c1189b6 63path for the backup files is `/mnt/backup/dump/...`.
aa039b0f
DM
64
65
66File naming conventions
67~~~~~~~~~~~~~~~~~~~~~~~
68
69This backend uses a well defined naming scheme for VM images:
70
71 vm-<VMID>-<NAME>.<FORMAT>
72
73`<VMID>`::
74
75This specifies the owner VM.
76
77`<NAME>`::
78
8c1189b6 79This can be an arbitrary name (`ascii`) without white space. The
871e1fd6 80backend uses `disk-[N]` as default, where `[N]` is replaced by an
aa039b0f
DM
81integer to make the name unique.
82
83`<FORMAT>`::
84
8c1189b6 85Specifies the image format (`raw|qcow2|vmdk`).
aa039b0f
DM
86
87When you create a VM template, all VM images are renamed to indicate
5eba0743 88that they are now read-only, and can be used as a base image for clones:
aa039b0f
DM
89
90 base-<VMID>-<NAME>.<FORMAT>
91
92NOTE: Such base images are used to generate cloned images. So it is
871e1fd6
FG
93important that those files are read-only, and never get modified. The
94backend changes the access mode to `0444`, and sets the immutable flag
aa039b0f
DM
95(`chattr +i`) if the storage supports that.
96
5eba0743 97
aa039b0f
DM
98Storage Features
99~~~~~~~~~~~~~~~~
100
871e1fd6 101As mentioned above, most file systems do not support snapshots out
aa039b0f
DM
102of the box. To workaround that problem, this backend is able to use
103`qcow2` internal snapshot capabilities.
104
105Same applies to clones. The backend uses the `qcow2` base image
106feature to create clones.
107
108.Storage features for backend `dir`
109[width="100%",cols="m,m,3*d",options="header"]
110|==============================================================================
c2c8eb89
DC
111|Content types |Image formats |Shared |Snapshots |Clones
112|images rootdir vztmpl iso backup snippets |raw qcow2 vmdk subvol |no |qcow2 |qcow2
aa039b0f
DM
113|==============================================================================
114
115
116Examples
117~~~~~~~~
118
119Please use the following command to allocate a 4GB image on storage `local`:
120
121 # pvesm alloc local 100 vm-100-disk10.raw 4G
122 Formatting '/var/lib/vz/images/100/vm-100-disk10.raw', fmt=raw size=4294967296
7c384c31 123 successfully created 'local:100/vm-100-disk10.raw'
aa039b0f
DM
124
125NOTE: The image name must conform to above naming conventions.
126
127The real file system path is shown with:
128
129 # pvesm path local:100/vm-100-disk10.raw
130 /var/lib/vz/images/100/vm-100-disk10.raw
131
132And you can remove the image with:
133
134 # pvesm free local:100/vm-100-disk10.raw
135
deb4673f
DM
136
137ifdef::wiki[]
138
139See Also
140~~~~~~~~
141
f532afb7 142* link:/wiki/Storage[Storage]
deb4673f
DM
143
144endif::wiki[]
145
146