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. Good luck. > Regards, > Evgenii _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
