[Lustre-discuss] redistribute used space to other OSTs (free space)
Wojciech Turek
wjt27 at cam.ac.uk
Wed Nov 5 07:27:23 PST 2008
Alex wrote:
> On Tuesday 04 November 2008 18:52, Brian J. Murrell wrote:
>
>> On Tue, 2008-11-04 at 16:23 +0000, Wojciech Turek wrote:
>>
>>> I don't know how to move a particular object but you could move a
>>> whole file to another OST and that would release some space from the
>>> full OST.
>>> mkdir /mnt/lustre/tmp
>>> lfs setstripe -i 2 -c 1 /mnt/lustre/tmp
>>>
>
> supposing that i have enough space on all OSTs, but i want to create file1 on
> 2 OSTs, the next command will be enough: lfs setstripe -c 2 /mnt/lustre/file1
> but... i can predict which OSTs will be used!
>
> Is possible to specify somehow OSTs index, for more then one OST? someting
> like: lfs setstripe -i 2 -i 4 -c 2 /mnt/lustre/file1 in order to create file1
> on OST:2 and OST4?
>
AFAIK no it isn't possible.
Currently when using lfs setstripe command with --index switch you can
only specify index of the first OST of the striping pattern.
>
>>> and then copy or move file test3.img into tmp dir
>>>
>
> using cp/rm command after i deactivated my full OST:0 caused that the new file
> to be restriped (that's good and what i want).
>
> but this technique (cp followed by rm) it has a major disavantage: you need
> more free space on /mnt/lustre. what is happen if we are trying to move a
> test3.img and we have /mnt/lustre 99% full -> we need free space equivalent
> with minimum another test3.img size -> cp && rm command can not be used -> we
> go to MOVE command but here comes my problem again. See below:
>
> ON CLIENT:
> [root at rs1 ~]# lfs df -h
> UUID bytes Used Available Use% Mounted on
> testfs-MDT0000_UUID 130.4G 460.1M 122.5G 0% /mnt/lustre[MDT:0]
> testfs-OST0000_UUID 18.3G 17.4G 2.0M 94% /mnt/lustre[OST:0]
> testfs-OST0001_UUID 18.3G 15.5G 2.0G 84% /mnt/lustre[OST:1]
> testfs-OST0002_UUID 36.7G 15.5G 19.4G 42% /mnt/lustre[OST:2]
> testfs-OST0003_UUID 36.7G 15.5G 19.4G 42% /mnt/lustre[OST:3]
> filesystem summary: 110.0G 63.8G 40.7G 57% /mnt/lustre
> [root at rs1 ~]#
>
> ON MGS:
> [root at rhclm ~]# lctl --device testfs-OST0000-osc deactivate
> [root at rhclm ~]# lctl --device testfs-OST0001-osc deactivate
>
> [root at rhclm ~]# lctl dl|grep -i in
> 5 IN osc testfs-OST0000-osc testfs-mdtlov_UUID 5
> 6 IN osc testfs-OST0001-osc testfs-mdtlov_UUID 5
> [root at rhclm ~]#
>
> ON CLIENT AGAIN:
> [root at rs1 ~]# mkdir /mnt/lustre/tmp
> [root at rs1 ~]# lfs getstripe /mnt/lustre/tmp/
> OBDS:
> 0: testfs-OST0000_UUID ACTIVE
> 1: testfs-OST0001_UUID ACTIVE
> 2: testfs-OST0002_UUID ACTIVE
> 3: testfs-OST0003_UUID ACTIVE
> /mnt/lustre/tmp/
> stripe_count: -1 stripe_size: 0 stripe_offset: -1
> [root at rs1 ~]#
> [root at rs1 ~]# mv /mnt/lustre/test3.img /mnt/lustre/tmp/
> [root at rs1 ~]# lfs getstripe /mnt/lustre/tmp/test3.img
> OBDS:
> 0: testfs-OST0000_UUID ACTIVE
> 1: testfs-OST0001_UUID ACTIVE
> 2: testfs-OST0002_UUID ACTIVE
> 3: testfs-OST0003_UUID ACTIVE
> /mnt/lustre/tmp/test3.img
> obdidx objid objid group
> 0 7 0x7 0
> 2 6 0x6 0
> 3 70 0x46 0
> 1 69 0x45 0
> [root at rs1 ~]#
>
> So, using move command, test3.img is not restriped when moved
> in /mnt/lustre/tmp directory, even OST:0 and OST:1 are deactivated! In this
> case why round-robin allocator is not working? Is any way to use mv command
> and have test3.img file restriped on the fly when moved to new tmp directory?
> If yes, how can i do that? I would like to avoid cp usage (which i tested and
> is working)?
>
> Regards,
> Alx
> _______________________________________________
> Lustre-discuss mailing list
> Lustre-discuss at lists.lustre.org
> http://lists.lustre.org/mailman/listinfo/lustre-discuss
>
--
Wojciech Turek
Assistant System Manager
High Performance Computing Service
University of Cambridge
Email: wjt27 at cam.ac.uk
Tel: (+)44 1223 763517
More information about the lustre-discuss
mailing list