27.01.2016 22:04, Stanislav Kinsburskiу пишет:

27 янв. 2016 г. 5:30 PM пользователь Evgenii Shatokhin 
<[email protected]> написал:

27.01.2016 19:08, Stanislav Kinsburskiy пишет:


27.01.2016 16:02, Evgenii Shatokhin пишет:
27.01.2016 16:38, Igor Sukhih пишет:
On 01/27/2016 04:29 PM, Stanislav Kinsburskiу wrote:
27 янв. 2016 г. 14:24 пользователь Evgenii Shatokhin
<[email protected]> написал:
I created it with
vzctl set 101 --devnodes sdb1:rw --save

The node is now present in the CT. However, if I try to mount it in
the CT (mount /dev/sdb1 /mnt), no error is reported but mount seems to
have no effect. No files are seen in /mnt that are present on that
partition.

So, I guess, additional steps are needed?

You might need sysfs layout.
Please, strace your mount call and send it as a reply (attached).

Here it is.

As far as I can see in strace log, mount tries to open
/sys/dev/block/8:17, indeed. This file is present on the host but
not in
the CT.

Expectable.
Then you have to expose sysfs for this device to the container.
Igor, could you advice, please?


Lets try to use secondary disk feature first

vzctl set VEID --device-add hdd --device /dev/sda --save

No luck. The CT fails to start with "Failed to configure disk" after
that.


You can do it manually.
There is a file:

/sys/fs/cgroup/ve/c<CTID>/ve.sysfs_permissions

which controls sysfs layout.

Please, reply with results of:

# ls -l /sys/dev/block/8:17

I'll send you, what you have to write to this file.

Thanks for your help!

With libvzctl-7.0.172, vzctl set VEID --device-add <...> worked.

Now I am curious about these sysfs settings, just in case I will need do
such things manually in the future.

Could you still explain what should be done there?

Here is the output you asked for:

# ls -l /sys/dev/block/8:17
lrwxrwxrwx 1 root root 0 Jan 27 12:26 /sys/dev/block/8:17 ->
../../devices/pci0000:00/0000:00:0d.0/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb1

# ls -l
/sys/devices/pci0000:00/0000:00:0d.0/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb1
total 0
-r--r--r-- 1 root root 4096 Jan 27 16:20 alignment_offset
-r--r--r-- 1 root root 4096 Jan 27 12:26 dev
-r--r--r-- 1 root root 4096 Jan 27 16:20 discard_alignment
drwxr-xr-x 2 root root    0 Jan 27 16:20 holders
-r--r--r-- 1 root root 4096 Jan 27 16:20 inflight
-r--r--r-- 1 root root 4096 Jan 27 12:26 partition
drwxr-xr-x 2 root root    0 Jan 27 16:20 power
-r--r--r-- 1 root root 4096 Jan 27 16:20 ro
-r--r--r-- 1 root root 4096 Jan 27 12:26 size
-r--r--r-- 1 root root 4096 Jan 27 12:26 start
-r--r--r-- 1 root root 4096 Jan 27 16:20 stat
lrwxrwxrwx 1 root root    0 Jan 27 12:26 subsystem ->
../../../../../../../../../../class/block
drwxr-xr-x 2 root root    0 Jan 27 16:20 trace
-rw-r--r-- 1 root root 4096 Jan 27 12:26 uevent


It's simple.
Yes have to write these paths to /sys/fs/cgroup/ve/c<CTID>/ve.sysfs_permissions 
like this:

# echo "path rx" >> /sys/fs/cgroup/ve/<CTID>/ve.sysfs_permissions

Notes:
1) "rx" are permissions: read and execute. Check host sysfs, what permissions 
to set.
2) writing the whole path won't work. You have to share one directory by 
another.
I.e. in case of 
"devices/pci0000:00/0000:00:0d.0/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb1" 
you have to expose devices first, then devices/pci0000:00 and so on.
3) you have to expose the whole path to the symlink as well.
4) all paths are relative to sysfs root. I.e. no /sys/ in the beginning.
5) using of non-canonical paths (with ../) can be not supported.

IOW, you have to expose desired part of sysfs node by node.


Ah, I see. Thanks for the info!

Good luck.

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to