-
Notifications
You must be signed in to change notification settings - Fork 65
/
INSTALL
167 lines (125 loc) · 4.94 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
mh virtual tape & library system.
Instructions assume reader is familiar with the kernel build process.
There are two sections of code to build.
- The kernel module
- The user-space daemons.
Kernel module mhvtl:
==================
1) Make sure the kernel-devel package to match your running kernel is installed.
e.g.
RedHat AS 4 & 5:
sh> rpm -qa|grep kernel
kernel-2.6.9-34.0.1.EL
kernel-devel-2.6.9-34.0.1.EL
kernel-2.6.9-5.EL
kernel-devel-2.6.9-5.EL
kernel-utils-2.4-13.1.80
SLES 9 & 10:
sh> rpm -qa|grep kernel
2) Extract the mhvtl source code.
sh> tar xvfz mhvtl-2012-06-15.tgz
3) Change directory into the kernel driver source.
sh> cd mhvtl-1.3/kernel/
sh> make
sh> sudo make install
User space daemons:
===================
Pre-req for a running mhvtl
- sg3_utils (http://sg.danny.cz/sg/sg3_utils.html)
Pre-req to build/compile userspace:
- zlib-devel
- lzo-devel
* To build an RPM
===============
sh> sudo cp mhvtl-YYYY-MM-DD.tar.gz /usr/src/packages/SOURCE/
sh> cd /usr/src/packages/SOURCE
sh> sudo rpmbuild -tb mhvtl-YYYY-MM-DD.tar.gz
... <wait for rpm build to complete>
sh> sudo rpm -Uvh /usr/src/packages/RPMS/<cpu type>/mhvtl-1.3-z.<cpu type>.rpm
...
- Note: For RedHat, replace 'packages' with 'redhat'
* To build from tar archive (Debian / Ubuntu):
============================================
apt-get install lsscsi
apt-get install sg3-utils
Note: we used to create a user and group called "vtl" to try to limit
the possible system hazards of having root access. But we now feel
that normal Linux permissions and security controls are sufficient.
Also note: The package sg3-utils has a different name based on the distribution
used. Most distributions (Red Hat/Suse/Centos) use an underscore (sg3_utils).
Debian based distributions (Debian/Ubuntu/Mint use a hyphen (sg3-utils).
Now build user space daemons:
From the parent directory where you extracted the source.
sh> cd mhvtl-1.3
Build the binaries
sh> make
Install the systemd scripts and binaries and tell systemd:
sh> sudo make install
sh> sudo systemctl daemon-reload
Enable and start the mhvtl target service:
sh> sudo systemctl enable mhvtl.target
sh> sudo systemctl start mhvtl.target
And make sure it worked:
sh> sudo systemctl status mhvtl.target
You can test that your vtl* daemons are running with:
sh> ps -ax | fgrep vtl
Test:
Note: Make sure the 'mtx' & 'lsscsi' utilities are installed
The virtual devices are attached to HBA #5 in this example.
e.g.
# lsscsi -g
[0:0:0:0] disk ATA WDC WD1200BEVS-0 02.0 /dev/sda /dev/sg0
[3:0:0:0] cd/dvd Optiarc DVD RW AD-7910A 1.D1 /dev/sr0 /dev/sg1
[5:0:0:0] mediumx SPECTRA PYTHON 5500 /dev/sch0 /dev/sg6
[5:0:1:0] tape QUANTUM SDLT600 5500 /dev/st0 /dev/sg2
[5:0:2:0] tape QUANTUM SDLT600 5500 /dev/st1 /dev/sg3
[5:0:3:0] tape IBM ULT3580-TD4 5500 /dev/st2 /dev/sg4
[5:0:4:0] tape IBM ULT3580-TD4 5500 /dev/st3 /dev/sg5
# mtx -f /dev/sg6 status
Storage Changer /dev/sg6:4 Drives, 37 Slots ( 4 Import/Export )
Data Transfer Element 0:Empty
Data Transfer Element 1:Empty
Data Transfer Element 2:Empty
Data Transfer Element 3:Empty
Storage Element 1:Full :VolumeTag=SDLT01S3
Storage Element 2:Full :VolumeTag=SDLT02S3
Storage Element 3:Full :VolumeTag=SDLT03S3
Storage Element 4:Full :VolumeTag=SDLT04S3
Storage Element 5:Full :VolumeTag=SDLT05S3
Storage Element 6:Full :VolumeTag=SDLT06S3
Storage Element 7:Full :VolumeTag=SDLT07S3
Storage Element 8:Full :VolumeTag=SDLT08S3
Storage Element 9:Full :VolumeTag=SDLT09S3
Storage Element 10:Empty
Storage Element 11:Full :VolumeTag=ULT001L1
Storage Element 12:Full :VolumeTag=ULT002L2
Storage Element 13:Full :VolumeTag=ULT003L3
Storage Element 14:Full :VolumeTag=ULT004L4
Storage Element 15:Full :VolumeTag=ULT005L1
Storage Element 16:Full :VolumeTag=ULT006L2
Storage Element 17:Full :VolumeTag=ULT007L3
Storage Element 18:Full :VolumeTag=ULT008L4
Storage Element 19:Full :VolumeTag=ULT009L1
Storage Element 20:Empty
Storage Element 21:Full :VolumeTag=8MM001X4
Storage Element 22:Full :VolumeTag=8MM002X4
Storage Element 23:Full :VolumeTag=8MM003X4
Storage Element 24:Full :VolumeTag=8MM004X4
Storage Element 25:Empty
Storage Element 26:Empty
Storage Element 27:Empty
Storage Element 28:Empty
Storage Element 29:Empty
Storage Element 30:Empty
Storage Element 31:Full :VolumeTag=CLN001L1
Storage Element 32:Full :VolumeTag=CLN002L1
Storage Element 33:Full :VolumeTag=CLN003L1
Storage Element 34 IMPORT/EXPORT:Empty
Storage Element 35 IMPORT/EXPORT:Empty
Storage Element 36 IMPORT/EXPORT:Empty
Storage Element 37 IMPORT/EXPORT:Empty
Enjoy.
Please feel free in letting me know if this works for you.
Bug fixes and suggestions always welcome.
markh794@gmail.com
mark.harvey@nutanix.com