sysadmin.adoc: add more ZFS tips
[pve-docs.git] / sysadmin.adoc
1 Host System Administration
2 ==========================
3
4 {pve} is based on the famous https://www.debian.org/[Debian] Linux
5 distribution. That means that you have access to the whole world of
6 Debian packages, and the base system is well documented. The
7 https://debian-handbook.info/download/stable/debian-handbook.pdf[Debian
8 Administrator\'s Handbook] is available online, and provide a
9 comprehensive introduction to the Debian operating system (see
10 xref:Hertzog13[]).
11
12 A standard {pve} installation uses the default repositories from
13 Debian, so you get bug fixes and security updates through that
14 channel. In addition, we provide our own package repository to roll
15 out all {pve} related packages. This includes updates to some
16 Debian packages when necessary.
17
18 We also deliver a specially optimized Linux kernel, where we enable all
19 required virtualization and container features. That kernel includes
20 drivers for http://zfsonlinux.org/[ZFS], and several hardware drivers.
21 For example, we ship Intel network card drivers to support their
22 newest hardware.
23
24 The following sections will concentrate on virtualization related
25 topics. They either explains things which are different on {pve}, or
26 tasks which are commonly used on {pve}. For other topics, please refer
27 to the standard Debian documentation.
28
29 System requirements
30 -------------------
31
32 For production servers, high quality server equipment is needed. Keep
33 in mind, if you run 10 Virtual Servers on one machine and you then
34 experience a hardware failure, 10 services are lost. {pve}
35 supports clustering, this means that multiple {pve} installations
36 can be centrally managed thanks to the included cluster functionality.
37
38 {pve} can use local storage (DAS), SAN, NAS and also distributed
39 storage (Ceph RBD). For details see xref:chapter-storage[chapter storage].
40
41 Minimum requirements, for evaluation
42 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43
44 * CPU: 64bit (Intel EMT64 or AMD64)
45
46 * RAM: 1 GB RAM
47
48 * Hard drive
49
50 * One NIC
51
52 Recommended system requirements
53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55 * CPU: 64bit (Intel EMT64 or AMD64), Multi core CPU recommended
56
57 * RAM: 8 GB is good, more is better
58
59 * Hardware RAID with batteries protected write cache (BBU) or flash
60  based protection
61
62 * Fast hard drives, best results with 15k rpm SAS, Raid10
63
64 * At least two NICĀ“s, depending on the used storage technology you need more
65
66
67 Getting Help
68 ------------
69
70 There are basically two different support channels. {pve} itself if
71 fully open source, so we always encourage our users to discuss and
72 share their knowledge using the http://forum.proxmox.com/[Community
73 Support Forum]. The forum is fully moderated by the Proxmox support
74 team. Up to now, the forum has about 25.000 members, and more than
75 120.000 messages. Needless to say that such a large forum is a great
76 place to get information.
77
78 The second channel is the commercial support provided by
79 {proxmoxGmbh}. {pve} server subscriptions can be ordered online, see
80 http://shop.maurer-it.com[{pve} Shop]. For all details see
81 http://www.proxmox.com/proxmox-ve/pricing[{pve} Subscription Service
82 Plans].
83
84 Please contact the mailto:office@proxmox.com[Proxmox sales team] for
85 commercial support requests or volume discounts.
86
87 Package Repositories
88 --------------------
89
90 All Debian based systems use
91 http://en.wikipedia.org/wiki/Advanced_Packaging_Tool[APT] as package
92 management tool. The list of repositories is defined in
93 '/etc/apt/sources.list' and '.list' files found inside
94 '/etc/apt/sources.d/'. Updates can be installed directly using
95 'apt-get', or via the GUI.
96
97 Apt 'sources.list' files lists one package repository per line, with
98 the most preferred source listed first. Empty lines are ignored, and a
99 '#' character anywhere on a line marks the remainder of that line as a
100 comment. The information available from the configured sources is
101 acquired by 'apt-get update'.
102
103 .File '/etc/apt/sources.list'
104 ----
105 deb http://ftp.debian.org/debian jessie main contrib
106
107 # security updates
108 deb http://security.debian.org jessie/updates main contrib
109 ----
110
111 In addition, {pve} provides three different package repositories.
112
113 {pve} Enterprise Repository
114 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
115
116 This is the default, stable and recommended repository, available for
117 all {pve} subscription users. It contains the most stable packages,
118 and is suitable for production use. You need a valid subscription key
119 to access this repository. The `pve-enterprise` repository is enabled
120 by default:
121
122 .File '/etc/apt/sources.list.d/pve-enterprise.list'
123 ----
124 deb https://enterprise.proxmox.com/debian jessie pve-enterprise
125 ----
126
127 NOTE: You can disable this repository by commenting out the above line
128 using a '#' (at the start of the line). This prevents error messages
129 if you do not have a subscription key. Please configure the
130 `pve-no-subscription` repository in that case.
131
132 As soon as updates are available, the `root@pam` user is notified via
133 email about the available new packages. On the GUI, the change-log of
134 each package can be viewed (if available), showing all details of the
135 update. So you will never miss important security fixes.
136
137 {pve} No-Subscription Repository
138 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
139
140 As the name suggests, you do not need a subscription key to access
141 this repository. It can be used for testing and non-production
142 use. Its not recommended to run on production servers, as these
143 packages are not always heavily tested and validated.
144
145 We recommend to configure this repository in '/etc/apt/sources.list'.
146
147 .File '/etc/apt/sources.list'
148 ----
149 deb http://ftp.debian.org/debian jessie main contrib
150
151 # PVE pve-no-subscription repository provided by proxmox.com,
152 # NOT recommended for production use
153 deb http://download.proxmox.com/debian jessie pve-no-subscription
154
155 # security updates
156 deb http://security.debian.org jessie/updates main contrib
157 ----
158
159  
160 {pve} Test Repository
161 ~~~~~~~~~~~~~~~~~~~~~~
162
163 Finally, there is a repository called `pvetest`. This one contains the
164 latest packages and is heavily used by developers to test new
165 features. As usual, you can configure this using
166 '/etc/apt/sources.list' by adding the following line:
167
168 .sources.list entry for `pvetest`
169 ----
170 deb http://download.proxmox.com/debian jessie pvetest
171 ----
172
173
174 Installing {pve}
175 ----------------
176
177 {pve} ships as a set of Debian packages, so you can simply install it
178 on top of a normal Debian installation. After configuring the
179 repositories, you need to run:
180
181 [source,bash]
182 ----
183 apt-get update
184 apt-get install proxmox-ve
185 ----
186
187 While this looks easy, it presumes that you have correctly installed
188 the base system, and you know how you want to configure and use the
189 local storage. Network configuration is also completely up to you.
190
191 In general, this is not trivial, especially when you use LVM or
192 ZFS. This is why we provide an installation CD-ROM for {pve}. That
193 installer just ask you a few questions, then partitions the local
194 disk(s), installs all required packages, and configures the system
195 including a basic network setup. You can get a fully functional system
196 within a few minutes, including the following:
197
198 * Complete operating system (Debian Linux, 64-bit)
199 * Partition the hard drive with ext4 (alternative ext3 or xfs) or ZFS
200 * {pve} Kernel with LXC and KVM support
201 * Complete toolset
202 * Web based management interface
203
204 NOTE: By default, the complete server is used and all existing data is
205 removed.
206
207 Using the {pve} Installation CD-ROM
208 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
209
210 Please insert the installation CD-ROM, then boot from that
211 drive. Immediately afterwards you can choose the following menu
212 options:
213
214 Install Proxmox VE::
215
216 Start normal installation.
217
218 Install Proxmox VE (Debug mode)::
219
220 Start installation in debug mode. It opens a shell console at several
221 installation steps, so that you can debug things if something goes
222 wrong. Please press `CTRL-D` to exit those debug consoles and continue
223 installation. This option is mostly for developers and not meant for
224 general use.
225
226 Test Memory::
227
228 Runs 'memtest86+'. This is useful to check if your memory if
229 functional and error free.
230
231 You normally select *Install Proxmox VE* to start the installation. 
232
233 After that you get prompted to select the target hard disk(s). The
234 `Options` button aside lets you select the target file system, and
235 defaults to `ext4`. The installer uses LVM if you select 'ext3',
236 'ext4' or 'xfs' as file system, and offers additional option to
237 restrict LVM space.
238
239
240 .Advanced LVM configuration options
241 ****
242 The installer creates a Volume Group (VG) called `pve`, and additional
243 Logical Volumes (LVs) called `root`, `data` and `swap`. The size of
244 those volumes can be controlled with:
245
246 `hdsize`::
247
248 Defines the total HD size to be used. This way you can save free
249 space on the HD for further partitioning (i.e. for an additional PV
250 and VG on the same hard disk that can be used for LVM storage).
251
252 `swapsize`::
253
254 To define the size of the `swap` volume. Default is the same size as
255 installed RAM, with 4GB minimum and `hdsize/8` as maximum.
256
257 `maxroot`::
258
259 The `root` volume size. The `root` volume stores the whole operation
260 system.
261
262 `maxvz`::
263
264 Define the size of the `data` volume, which is mounted at
265 '/var/lib/vz'.
266
267 `minfree`::
268
269 To define the amount of free space left in LVM volume group `pve`.
270 16GB is the default if storage available > 128GB, `hdsize/8` otherwise.
271 +
272 NOTE: LVM requires free space for snapshot creation.
273 ****
274
275 If you have more than one disk, you can also use ZFS as file system.
276 ZFS supports several software RAID levels, so this is specially useful
277 if you do not have a hardware RAID controller.
278
279 .ZFS Performance Tips
280 ****
281 ZFS uses a lot of memory, so it is best to add additional 8-16GB RAM
282 if you want to use ZFS.
283
284 .Use fast SSD as write cache
285
286 ZFS provides the feature to use a fast SSD drive as write cache. The
287 write cache is called the ZFS Intent Log (ZIL). You can add that after
288 installation using the following command:
289
290  zpool add <pool-name> log </dev/path_to_fast_ssd>
291 ****
292
293 The next pages just asks for basic configuration options like time
294 zone and keyboard layout. You also need to specify your email address
295 and select a superuser password.
296
297 The last step is the network configuration. Please note that you can
298 use either IPv4 or IPv6 here, but not both. If you want to configure a
299 dual stack node, you can easily do that after installation.
300
301 If you press `Next` now, installation starts to format disks, and
302 copies packages to the target. Please wait until that is finished,
303 then reboot the server.
304
305 Further configuration is done via the Proxmox web interface. Just
306 point your browser to the IP address given during installation
307 (https://youripaddress:8006). {pve} is tested for IE9, Firefox 10
308 and higher, Google Chrome (latest).
309
310
311 Network Configuration
312 ---------------------
313
314 Basic network setup.
315
316 image::images/cluster-nwdiag.svg[{pve} Cluster Network]
317
318 image::images/node-nwdiag.svg[{pve} Default Network Setup]
319
320
321 Local Storage
322 -------------
323
324 Logical Volume Manager (LVM)
325 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
326
327 TODO: info about LVM.
328
329
330 ZFS on Linux
331 ~~~~~~~~~~~~
332
333 TODO: info about ZFS.
334
335
336 Working with 'systemd'
337 ----------------------
338
339 Journal and syslog
340 ~~~~~~~~~~~~~~~~~~
341
342 TODO: explain persistent journal...
343
344
345
346
347
348
349