[LU-80] Wide striping support Created: 09/Feb/11 Updated: 11/Jan/19 Resolved: 02/May/12 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.0.0, Lustre 2.1.0, Lustre 1.8.6 |
| Fix Version/s: | Lustre 2.2.0 |
| Type: | New Feature | Priority: | Minor |
| Reporter: | Oleg Drokin | Assignee: | Patrick Farrell (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
||||||||||||
| Issue Links: |
|
||||||||||||
| Bugzilla ID: | 4,424 | ||||||||||||
| Rank (Obsolete): | 4227 | ||||||||||||
| Description |
|
ORNL wants to have ability to stripe file across more than 160 OSTs. There is a number of patches in the bugzilla bug, but they are not totally complete for 2.x and there are some known issues. |
| Comments |
| Comment by Andreas Dilger [ 09/Feb/11 ] | |||||||||||||||||||||||||||
|
Oleg, all of these tracking bugs should contain a URL for the bugzilla bug, in this case: https://bugzilla.lustre.org/show_bug.cgi?id=4424 so that the patches and comments can be found easily. | |||||||||||||||||||||||||||
| Comment by Oleg Drokin [ 09/Feb/11 ] | |||||||||||||||||||||||||||
|
Actually it does. See "Bugzilla ID field" in Details. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 04/Aug/11 ] | |||||||||||||||||||||||||||
|
Recent discussion has moved this to a new feature in Lustre 2.2. Previous test for this feature has revealed incompatiablity issues with previous versions which lacked support for large stripe count due to not being able to handle more than one page of stripe data. Parts of the large stripe support have already gone into the master branch for 2.1 so the next set of patches will ensure Lustre 2.1 will be able to support properly large stripe count on future lustre 2.2 servers. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 08/Aug/11 ] | |||||||||||||||||||||||||||
|
I have Lustre 2.1 client support patch at http://review.whamcloud.com/#change,1194 Full client and server support is at http://review.whamcloud.com/#change,1111 Eventual full support will be based on top of the client support. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 22/Sep/11 ] | |||||||||||||||||||||||||||
|
I have been told that Xyrtex also has a widw stripe patch. Could someone from Xyrtex confirm this? | |||||||||||||||||||||||||||
| Comment by Nathan Rutman [ 03/Oct/11 ] | |||||||||||||||||||||||||||
|
Xyratex has a wide striping design, but it's not clear that we should pursue this. I'll post the design and the discussion to lustre-devel. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 09/Nov/11 ] | |||||||||||||||||||||||||||
|
Comments and instructions from Andreas: As per bug 4424 comment #112 and comment #272, the following improvements need to be made on the existing large EA patch for ext4 and e2fsprogs so as to get the patch and changes accepted and included into the upstream kernel ext4 and e2fsprogs: 1) EA value will be stored in an external inode if value_size > blocksize instead of 1/2 blocksize. 2) Increase EA space by allocating a single chunk of up to 64kB/blocksize contiguous xattr blocks and storing the block count in ext4_xattr_header->h_blocks. The change to the xattr blocks should be completely transparent to Lustre. ldiskfs can still continue to advertise the maximum xattr size larger than the 64kB which will fit into the external block range, but for most of our uses we will not need more than 64kB. Even the wide striping patch will currently only need 32kB for the 1350-stripe limit. Avoiding the use of the external inode will likely improve performance significantly. As for testing, the normal way to handle this is to add support to ext4 and create a small test filesystem with a multi-block xattr by mounting it with ext4/ldiskfs (nojournal to save space) and using setfattr with a large xattr, use getfattr to verify it works. 3) Then, add support to e2fsprogs and e2fsck in order to check that the multi-block xattr is correct, and then save the image to the e2fsprogs (something like tests/f_xattr_blocks/image.gz) subdirectory and running the e2fsprogs e2fsck test script on it. The e2fsprogs "f_xattrs_blocks" image should include several different inodes:
There is already a test case for the external xattr inode, that should stay. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 11/Nov/11 ] | |||||||||||||||||||||||||||
|
For increasing EA space by allocating contiguous xattr blocks, there were two questions brought up by Kalpak in bug 4424 comment #112: 1) Since we will have 64KB EA space, we will need to allocate 64KB buffers to read in the EA space. This way a lot of the code will remain as-is, since most of the macros/functions assume that EA space is contiguous(as was with single EA block). Will allocation of such large buffers(even with vmalloc) lead to any problems? 2) We won't be using refcount for EA blocks any more. Any problems with this? Should we think about removing the entire mb_cache code or at least disable mb_cache when not needed? For question 1), I wonder whether it's a feasible way or not: In order to make most of the existing macros/functions (which assume the xattr space is contiguous) unchanged, we could allocate a contiguous large buffer to handle all of the data. However, we have to memcpy the data from block buffers to the large buffer, and after the data are changed, we have to memcpy the data back to the block buffers to make the data written into the block device. Is this way reasonable? Or is handling the noncontiguous multiple block buffers the only way? For question 2), the h_refcount field in struct ext4_xattr_header is used as a reference count for multiple inodes sharing the same xattr block. Is there any reason for not using this field any more? | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 13/Nov/11 ] | |||||||||||||||||||||||||||
|
Since the caller will already be allocating a buffer for reads, it seems (without just now looking at the code, tired) that it should be possible to read the xattr in block-sized pieces and copy them into the user buffer. This will also fix the problem with misalignment of the data in the disk buffer. To be clear, I'm thinking of expanding the xattr storage space from the single external xattr up to many small xattrs in the same large external block. I don't think the large xattr block should be only for a single large xattr. As for the refcount on the external block - I would just leave things as it is today instead of making too many changes. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 15/Nov/11 ] | |||||||||||||||||||||||||||
Yes, for ext4_xattr_list() and ext4_xattr_get(), a buffer is already provided for storing the xattr names and values mem-copied from the in-inode xattr space and external xattr block buffer(s). However, for ext4_xattr_set() and ext4_expand_extra_isize_ea(), all of the functions called by them assume the xattr space is contiguous with entries growing downwards and values growing upwards (aligned to the end of the space). The create, replace, remove and shift operations of xattrs are all performed inside a contiguous buffer. It's no problem with single xattr block. But for multiple blocks, since the data of them would be read into different block buffers, which are likely not contiguous, almost all of the existing functions need to be changed. So, this is my question 1) above. | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 18/Nov/11 ] | |||||||||||||||||||||||||||
|
It would be possible to handle this in the code by handling xattr values that span multiple buffers, which is ignored in the common case because the buffer size should be <= blocksize. However, I don't know how complex this would be. It might also be worthwhile to ask on the ext4 list if anyone has a good idea of how to solve this. I hope their solution is not to require limiting the single xattr size to 4kB or less... It might also make sense to ask on the linux-ext4 list if anyone has a good solution for this issue. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 18/Nov/11 ] | |||||||||||||||||||||||||||
OK, will do. For the external inode patch, I rebased the ext4-large-eas.patch from http://review.whamcloud.com/1111 on the latest upstream ext4 codes (parent: 5c8a0fbb), made the following changes and pushed it to http://review.whamcloud.com/1708 for review:
| |||||||||||||||||||||||||||
| Comment by James A Simmons [ 18/Nov/11 ] | |||||||||||||||||||||||||||
|
No ldisk-series file changes? | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 18/Nov/11 ] | |||||||||||||||||||||||||||
Sorry for the confusion. The patch in http://review.whamcloud.com/1708 is intended to be sent to linux-ext4, so I did not add the changes for ldiskfs series files. As I did not know how to submit ext4 changes to Gerrit for review, I still used ldiskfs directory. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 18/Nov/11 ] | |||||||||||||||||||||||||||
|
I have two bugs to work on but as soon as I'm done I was test your patch. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 18/Nov/11 ] | |||||||||||||||||||||||||||
Thanks James! | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 21/Nov/11 ] | |||||||||||||||||||||||||||
Threads on the linux-ext4 list: The solution is to support handling xattr data among non-contiguous block buffers. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 25/Nov/11 ] | |||||||||||||||||||||||||||
|
Existing patch patches/e2fsprogs-large-ea.patch for e2fsprogs have some errors with external inode. storage_size = EXT2_INODE_SIZE(ctx->fs->super) - Second at e2fsck_lfsck_find_ea(), there is no copy lmm for external inode. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 25/Nov/11 ] | |||||||||||||||||||||||||||
|
attach mds1.tar.gz - disk image of MDT with file wich have ea at external inode | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 29/Nov/11 ] | |||||||||||||||||||||||||||
|
I see the patch is not ready for testing yet. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 29/Nov/11 ] | |||||||||||||||||||||||||||
Right, the patches in http://review.whamcloud.com/1194 and http://review.whamcloud.com/1111 need to be revised and rebased on the current master branch. I've started on this and just uploaded a full patchset to change #1111 for review and testing. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 30/Nov/11 ] | |||||||||||||||||||||||||||
|
So the approach for testing should be everything in one patch i.e http://review.whamcloud.com/1111 instead of breaking it into smaller patches? | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 30/Nov/11 ] | |||||||||||||||||||||||||||
|
I upload my version of patch based on previos James Simons patch http://review.whamcloud.com/#change,1757. It has more fixes than Yu Jian`s patch. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 30/Nov/11 ] | |||||||||||||||||||||||||||
|
Can we try to keep the code under the same ChangeId; make life easier. Also I like the idea of handling the xattr rpc packets with dynamic buffers. We can base it on the code in http://review.whamcloud.com/#change,1178 | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 01/Dec/11 ] | |||||||||||||||||||||||||||
|
Hi Alexander, "I would actually prefer if this patch were split into separate pieces, for ldiskfs large xattrs (this change 1111), the client code (change 1194), and the RPC size changes (a new change). This will make inspection considerably easier." | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 01/Dec/11 ] | |||||||||||||||||||||||||||
|
In that case lets break up the patch. http://review.whamcloud.com/#change,1194 with ChangeId Idbaeb989 can be used for the client changes. How does that sound to everyone? | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 01/Dec/11 ] | |||||||||||||||||||||||||||
|
Yes, I can push client side changes to gerrit, but I don`t want to do it right now, cause inspectors didn`t agree with my point about this patch. Code is shared between client and server. Inspection and fix in one place(1 request) is better. After inspection we can separate client code. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 01/Dec/11 ] | |||||||||||||||||||||||||||
|
Hi James,
Are you going to port the patches to master branch or would you like me to do so? I just wanna avoid duplicating works among Alexander, you and me. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 02/Dec/11 ] | |||||||||||||||||||||||||||
|
James, I think, to separate ldiskfs patch is good idea, cause it can be tested without other changes. Xattr with size more than 2K go to external inode (80 OST). Any reason why this size is 2K? May be 4k(160OST) is better for performance with less number of OSTs? | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 02/Dec/11 ] | |||||||||||||||||||||||||||
|
Hi Alexander,
In http://review.whamcloud.com/1111 patch set 3 and http://review.whamcloud.com/1708 patch set 1, this has been changed to store the xattr value in an external inode if value_size > blocksize instead of 1/2 blocksize, which was also mentioned in the above comments in this ticket. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 02/Dec/11 ] | |||||||||||||||||||||||||||
|
Ok, but current version of code (blocksize) have bug. Xattr block store header, entry, value. If | |||||||||||||||||||||||||||
| Comment by Peter Jones [ 02/Dec/11 ] | |||||||||||||||||||||||||||
|
YuJian I suggest that you signal ahead of time what work that you intend to do next (to allow anyone else who is duplicating effort with you a chance to speak up) but then proceed- we want to ensure that this feature remains moving forward. Thanks Peter | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 04/Dec/11 ] | |||||||||||||||||||||||||||
OK, Peter. James and Alexander, I'm going port the patches for dynamic buffers in http://review.whamcloud.com/1178 to master branch and then start testing on the ldiskfs patches in http://review.whamcloud.com/1708 first. After Alexander makes the client and lov patches in http://review.whamcloud.com/1111 pass inspections, I would also test the whole feature. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 05/Dec/11 ] | |||||||||||||||||||||||||||
|
I like to break up the client and lov patches. The reason for this is that I like to test the lov changes without clients supporting wide stripe. I can continue on my client work while Alex does the lov work. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 06/Dec/11 ] | |||||||||||||||||||||||||||
Thanks James. Alexander has split the client and lov changes. Could you please update http://review.whamcloud.com/1194 with client changes? While porting http://review.whamcloud.com/1178 to master branch, I hit some conflicts. I'm still working on resolving them. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 06/Dec/11 ] | |||||||||||||||||||||||||||
|
Updated the client side patch. Running auster to find any regressions. Will send up once I'm done testing. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 07/Dec/11 ] | |||||||||||||||||||||||||||
|
Okay I did some basic testing of the client side work and it appears to have no regressions. The utilities code needs some serious cleanup. I'm, going to test all the patches togther now on out test bed to a see if large stripe functions. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 08/Dec/11 ] | |||||||||||||||||||||||||||
|
I see the buuer resize is loocated in http://review.whamcloud.com/#change,1808. Will give it a try. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 08/Dec/11 ] | |||||||||||||||||||||||||||
Yes, James, please try the latest patch set. So, finally, the patches were split into four components and located in: http://review.whamcloud.com/1194 for the client changes. I'll start the testing today. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
Hi,
So, external inode xattr has two times less performance than block xattr for creat, stat and remove operation. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
Alex can you post the patch for mdtest. I really like to also do some benchmarking as well on our cray test system with the non-loop file system. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
While setting up a file system using the test suite I discovered the MKFSOPT doesn't work as expected. | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
patch for mdtest, add option -x(xattr_size), to create read xattr. | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
The mkfs fix should go into a separate bug. Note also that with new mkfs.lustre I think you don't need to specify all if the features again, only the new ones. Cheers, Andreas | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
With all the patches I began to see test regressions. I I tracked to down to the dynamic buffer patch, http://review.whamcloud.com/1808. Below is one of the test I have been failing. == sanity test 24u: create stripe file =============================================================== 12:23:32 (1323451412) I turned on full debugging and uploaded the logs to uploads/ | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 09/Dec/11 ] | |||||||||||||||||||||||||||
|
Alexander, Yu Jian, since the 64kB "mid-sized" xattrs are not included in the current patch set, can you please file a separate bug with the comments from this bug related to that work so that it can be tracked separately. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 11/Dec/11 ] | |||||||||||||||||||||||||||
Sure, I created | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 12/Dec/11 ] | |||||||||||||||||||||||||||
|
James, what about testing result without dynamic buffer patch? | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 12/Dec/11 ] | |||||||||||||||||||||||||||
|
Its looking very good. I haven't seen any regressions. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 13/Dec/11 ] | |||||||||||||||||||||||||||
|
The dynamic buffer patch in http://review.whamcloud.com/1808 still did not pass the basic regression tests. Tappro is working on updating the patches. I just finished testing the ldiskfs patch in http://review.whamcloud.com/1708 by running revised xfstests #020 and #062. The tests passed. I'm going to start the testing on the combined patches without the dynamic buffer patch. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 15/Dec/11 ] | |||||||||||||||||||||||||||
|
Hi James and Alexander, | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 15/Dec/11 ] | |||||||||||||||||||||||||||
|
Just tested the regression I seen with the dynamic buffering and they stopped failing. Looking good. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 16/Dec/11 ] | |||||||||||||||||||||||||||
Test changes are in: http://review.whamcloud.com/1880 | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 19/Dec/11 ] | |||||||||||||||||||||||||||
|
Alex for xattr option, does that only work as root. FAILED in create_remove_items_helper, unable to create xatrr trusted.lov: Operation not permitted is the error I'm seeing | |||||||||||||||||||||||||||
| Comment by Alexander Boyko [ 20/Dec/11 ] | |||||||||||||||||||||||||||
|
Only cap_sys_admin have access to create trusted xattr. But you can create like touch /media/mdtest/123 setfattr -n "user.123" -v "1233453457" /media/mdtest/1234 | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 20/Dec/11 ] | |||||||||||||||||||||||||||
|
Current status of the patches:
| |||||||||||||||||||||||||||
| Comment by James A Simmons [ 20/Dec/11 ] | |||||||||||||||||||||||||||
|
Oops on the MDS when using 1.8.X clients | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 21/Dec/11 ] | |||||||||||||||||||||||||||
Unable to handle kernel NULL pointer dereference at 000000000000001c RIP: [<ffffffff88eba171>] :mdt:mdt_dump_lmm+0x21/0x230 PGD 41b29d067 PUD 41b29c067 PMD 0 Oops: 0000 [1] SMP last sysfs file: /devices/pci0000:00/0000:00:00.0/irq CPU 4 Modules linked in: cmm(U) osd_ldiskfs(U) mdt(U) mdd(U) mds(U) fsfilt_ldiskfs(U) exportfs mgc(U) lustre(U) lov(U) osc(U) lquota(U) mdc(U) fid(U) fld(U) ko2iblnd(U) ptlrpc(U) obdclass(U) lnet(U) lvfs(U) libcfs(U) ldiskfs(U) jbd2 crc16 ipmi_si mpt2sas mptctl dell_rbu autofs4 ib_srp(U) ipmi_devintf ipmi_msghandler ipt_REJECT xt_tcpudp xt_state ip_conntrack nfnetlink iptable_filter ip_tables x_tables be2iscsi iscsi_tcp bnx2i cnic uio libiscsi_tcp libiscsi2 scsi_transport_iscsi2 scsi_transport_iscsi rdma_ucm(U) ib_sdp(U) rdma_cm(U) iw_cm(U) ib_addr(U) ib_ipoib(U) ipoib_helper(U) ib_cm(U) ib_sa(U) ipv6 xfrm_nalgo crypto_api ib_uverbs(U) ib_umad(U) iw_nes(U) iw_cxgb3(U) cxgb3(U) ib_qib(U) dca mlx4_ib(U) mlx4_en(U) mlx4_core(U) dm_mirror dm_log dm_multipath scsi_dh dm_mod raid0 raid1 video backlight sbs power_meter hwmon i2c_ec i2c_core dell_wmi wmi button battery asus_acpi acpi_memhotplug ac parport_pc lp parport sd_mod sr_mod cdrom sg mptsas mptscsih ib_mthca(U) mptbase ata_piix libata uhci_hcd tpm_tis pcspkr i5000_edac ehci_hcd scsi_transport_sas ib_mad(U) tpm shpchp tpm_bios ib_core(U) scsi_mod edac_mc serio_raw nfs nfs_acl lockd fscache sunrpc bnx2 Pid: 5880, comm: mdt_03 Tainted: G 2.6.18-238.19.1.el5.head #1 RIP: 0010:[<ffffffff88eba171>] [<ffffffff88eba171>] :mdt:mdt_dump_lmm+0x21/0x230 RSP: 0018:ffff81018d6a3810 EFLAGS: 00010246 RAX: ffffc2001a175140 RBX: 0000000000000000 RCX: ffff8102dea59190 RDX: 0000000000000080 RSI: 0000000000000000 RDI: 0000000000000040 RBP: ffff81018d6a3870 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000000 R12: ffff8102416a7dc0 R13: 0000000000000040 R14: ffff810419763110 R15: 0000000000000000 FS: 00002ad72ec356e0(0000) GS:ffff81010ef50240(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 000000000000001c CR3: 000000041e41a000 CR4: 00000000000006e0 Process mdt_03 (pid: 5880, threadinfo ffff81018d6a2000, task ffff81041d768080) Stack: ffff81018d6a3870 ffffffff88f372b2 ffffc2001a175218 ffff81043c5e7a48 0000000000000002 ffff8104197630f8 ffff8102416a7dc0 ffff8104197630f8 ffff8102416a7dc0 ffff810419763000 ffff810419763110 ffff81043c5e7a48 Call Trace: [<ffffffff88f372b2>] :cmm:cml_attr_get+0x112/0x190 [<ffffffff88eace4f>] :mdt:mdt_getattr_internal+0x67f/0xd90 [<ffffffff88a0dda7>] :obdclass:class_handle2object+0xd7/0x170 [<ffffffff88eaebbc>] :mdt:mdt_getattr_name_lock+0x165c/0x1a90 [<ffffffff88afff10>] :ptlrpc:lustre_msg_buf+0x0/0x80 [<ffffffff88aff413>] :ptlrpc:lustre_msg_get_flags+0x23/0x80 [<ffffffff88eaf622>] :mdt:mdt_intent_getattr+0x312/0x4a0 [<ffffffff88eaa138>] :mdt:mdt_unpack_req_pack_rep+0x588/0x6c0 [<ffffffff88b011f0>] :ptlrpc:lustre_swab_ldlm_intent+0x0/0x10 [<ffffffff88eb6577>] :mdt:mdt_intent_policy+0x467/0x650 [<ffffffff88abe209>] :ptlrpc:ldlm_lock_enqueue+0x179/0xa00 [<ffffffff88ada720>] :ptlrpc:ldlm_export_lock_get+0x10/0x20 [<ffffffff88951521>] :libcfs:cfs_hash_bd_add_locked+0x71/0x80 [<ffffffff88954edd>] :libcfs:cfs_hash_add+0x17d/0x190 [<ffffffff88adca2b>] :ptlrpc:ldlm_handle_enqueue0+0x9eb/0xff0 [<ffffffff88ea9c39>] :mdt:mdt_unpack_req_pack_rep+0x89/0x6c0 [<ffffffff88eb59d2>] :mdt:mdt_enqueue+0x72/0x100 [<ffffffff88eab456>] :mdt:mdt_handle_common+0x11e6/0x1750 [<ffffffff88a30361>] :obdclass:keys_fill+0x51/0x100 [<ffffffff88eaba90>] :mdt:mdt_regular_handle+0x10/0x20 [<ffffffff88b0b947>] :ptlrpc:ptlrpc_server_handle_request+0x897/0xe90 <~snip~> It seems this is related to the following changes in dynamic buffer patches http://review.whamcloud.com/1808 : diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c
index 1398f1e..7da5144 100644
--- a/lustre/mdt/mdt_handler.c
+++ b/lustre/mdt/mdt_handler.c
@@ -499,8 +499,11 @@ static int mdt_getattr_internal(struct mdt_thread_info *info,
RETURN(0);
}
- buffer->lb_buf = req_capsule_server_get(pill, &RMF_MDT_MD);
- buffer->lb_len = req_capsule_get_size(pill, &RMF_MDT_MD, RCL_SERVER);
+ buffer->lb_len = reqbody->eadatasize;
+ if (buffer->lb_len > 0)
+ buffer->lb_buf = req_capsule_server_get(pill, &RMF_MDT_MD);
+ else
+ buffer->lb_buf = NULL;
Tappro, could you please take a look at this issue? Thanks! | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 23/Dec/11 ] | |||||||||||||||||||||||||||
James, fyi, Tappro updated the dynamic buffer patches in http://review.whamcloud.com/1808. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 27/Dec/11 ] | |||||||||||||||||||||||||||
|
Current testing status: A full auster test run was finished on the latest version of the combined patches (http://review.whamcloud.com/1842 patch set 4):
One regression issue was hit on ost-pools test 25, which was caused by the utils patch in http://review.whamcloud.com/1194. James is working on a new patch. (Thanks James!) Another test run is being performed on 200 OSTs against the same combined patches:
So far, parallel-scale (which wraps compilebench, metabench, simul, mdtest, connectathon, ior, cascading_rw, write_append_truncate, write_disjoint, statahead) has passed (stripe count was -1 while running ior). The sanity-benchmark test (which wraps dbench, bonnie++, iozone, fsx, pios) is ongoing (stripe count is -1 while running bonnie++, iozone and fsx). | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 27/Dec/11 ] | |||||||||||||||||||||||||||
|
The ost pool test are really broken for the case when the MGS and MDS are on separate servers. I will track down those problems at a latter time. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 28/Dec/11 ] | |||||||||||||||||||||||||||
|
Updated my client side patch. Works on my end but give it a try. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 28/Dec/11 ] | |||||||||||||||||||||||||||
|
> The sanity-benchmark test (which wraps dbench, bonnie++, iozone, fsx, pios) is ongoing (stripe count is -1 while running bonnie++, iozone and fsx). dbench, bonnie++ and fsx tests passed. However, while running the iozone test, I found the filesystem space was not freed after writing, reading and removing the iozone test file. I tried to reproduce this issue on 40 OSTs (each with 200MB in size): Before running iozone: + lfs df UUID 1K-blocks Used Available Use% Mounted on lustre-MDT0000_UUID 2999248 178692 2620556 6% /mnt/lustre[MDT:0] lustre-OST0000_UUID 187464 24764 152636 14% /mnt/lustre[OST:0] lustre-OST0001_UUID 187464 24764 152636 14% /mnt/lustre[OST:1] lustre-OST0002_UUID 187464 24764 152636 14% /mnt/lustre[OST:2] lustre-OST0003_UUID 187464 24764 152636 14% /mnt/lustre[OST:3] ...... filesystem summary: 7498560 990560 6105440 14% /mnt/lustre After running iozone and removing the test file: + du -sh /mnt/lustre 12K /mnt/lustre + lfs df UUID 1K-blocks Used Available Use% Mounted on lustre-MDT0000_UUID 2999248 179660 2619588 6% /mnt/lustre[MDT:0] lustre-OST0000_UUID 187464 139456 32312 81% /mnt/lustre[OST:0] lustre-OST0001_UUID 187464 139456 32312 81% /mnt/lustre[OST:1] lustre-OST0002_UUID 187464 139456 35384 80% /mnt/lustre[OST:2] lustre-OST0003_UUID 187464 139456 32312 81% /mnt/lustre[OST:3] ...... filesystem summary: 7498560 5569536 1331904 81% /mnt/lustre The objects on OSTs were not unlinked. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
> Updated my client side patch. Works on my end but give it a try. The ost-pools test 25 still failed when the OST count was less than 10: Since we support adding the same OST into different pools, the pool count could be larger than the OST count. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
Thank you I couldn't duplicate the failure you where seeing. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
> Thank you I couldn't duplicate the failure you where seeing. The issue could be reproduced as follows: For example, on the MGS node: [root@wc0007 ~]# lctl dl 0 UP mgs MGS MGS 11 1 UP mgc MGC10.45.1.7@tcp df05e19a-f3b1-9a66-6002-af7f79f26b6e 5 2 UP lov lustre-MDT0000-mdtlov lustre-MDT0000-mdtlov_UUID 4 3 UP mdt lustre-MDT0000 lustre-MDT0000_UUID 7 4 UP mds mdd_obd-lustre-MDT0000 mdd_obd_uuid-lustre-MDT0000 3 5 UP osc lustre-OST0000-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 5 6 UP osc lustre-OST0001-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 5 7 UP osc lustre-OST0002-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 5 8 UP osc lustre-OST0003-osc-MDT0000 lustre-MDT0000-mdtlov_UUID 5 [root@wc0007 ~]# for i in $(seq 5); do lctl pool_new lustre.pool$i && sync && lctl pool_list lustre; done Pool lustre.pool1 created Pools from lustre: lustre.pool1 Pool lustre.pool2 created Pools from lustre: lustre.pool2 lustre.pool1 Pool lustre.pool3 created Pools from lustre: lustre.pool3 lustre.pool2 lustre.pool1 Pool lustre.pool4 created Pools from lustre: lustre.pool4 lustre.pool3 lustre.pool2 lustre.pool1 Pool lustre.pool5 created Pools from lustre: [root@wc0007 ~]# echo $? 75 The utils patch in http://review.whamcloud.com/1194 would get the value of "numobd" (the real OST count) and pass it to llapi_get_poollist(), then if the pool count was larger than the real OST count, llapi_get_poollist() would return -EOVERFLOW: /* check output bounds */
if (nb_entries >= list_size)
return -EOVERFLOW;
| |||||||||||||||||||||||||||
| Comment by James A Simmons [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
Just to make sure for setup_obd_indexes for the function llapi_lov_get_uuids the allocated buffer uuids should be equal to "numobd" * sizeof(struct obd_uuid) | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
> The objects on OSTs were not unlinked. Here is a report which contains the full debug logs: Debug log on the client node (wc0005) showed that: 00000080:00000001:7.0:1325162199.607929:0:22075:0:(namei.c:1042:ll_objects_destroy()) Process entered 00000080:00000001:7.0:1325162199.607929:0:22075:0:(namei.c:1047:ll_objects_destroy()) Process leaving (rc=0 : 0 : 0) 00000100:00000001:7.0:1325162199.607931:0:22075:0:(client.c:2184:__ptlrpc_req_finished()) Process entered 00000100:00000040:7.0:1325162199.607932:0:22075:0:(client.c:2196:__ptlrpc_req_finished()) @@@ refcount now 1 req@ffff880199321000 x1389532891058769/t4294967339(4294967339) o36->lustre-MDT0000-mdc-ffff880413891c00@10.45.1.7@tcp:12/10 lens 456/424 e 0 to 0 dl 1325162206 ref 2 fl Complete:R/4/0 rc 0/0 00000100:00000001:7.0:1325162199.607937:0:22075:0:(client.c:2203:__ptlrpc_req_finished()) Process leaving (rc=0 : 0 : 0) 00000080:00000001:7.0:1325162199.607938:0:22075:0:(namei.c:1146:ll_unlink_generic()) Process leaving (rc=0 : 0 : 0) As we can see, ll_objects_destroy() did not run into obd_unpackmd() and obd_destroy(), it returned 0 directly from the following codes: int ll_objects_destroy(struct ptlrpc_request *request, struct inode *dir)
{
......
ENTRY;
/* req is swabbed so this is safe */
body = req_capsule_server_get(&request->rq_pill, &RMF_MDT_BODY);
if (!(body->valid & OBD_MD_FLEASIZE))
RETURN(0);
......
}
OBD_MD_FLEASIZE flag was not set. Tappro, could you please take a look at this issue? Thanks! (BTW, the issue could be reproduced consistently.) | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 29/Dec/11 ] | |||||||||||||||||||||||||||
|
Done with the basic regression testing. All the test pass except for sanity 27z. I placed full debugging logs at /uploads/ | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 30/Dec/11 ] | |||||||||||||||||||||||||||
|
Attempted to mount the large stripe file system (1036 OST) to a cray 1.8.4 client. On the MGS side I only saw this log. Lustre: 3088:0:(ldlm_lib.c:909:target_handle_connect()) MGS: connection from a90c2cfa-2775-9658-e64f-8b54150021e1@30@gni t0 exp 0000000000000000 cur 1325257964 last 0 On the client the log reported Lustre: MGC10.37.248.56@o2ib1: Reactivating import The 1.8.6 non cray clients did work. Is 1.8.4 to old to work? | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 30/Dec/11 ] | |||||||||||||||||||||||||||
|
Yu Jian, I recall that one of the workarounds that Oleg implemented for older clients was to avoid sending the large LOV EA and cookies to the client, and then have the MDS do the unlink itself. I wonder if this functionality was lost in the port to master? | |||||||||||||||||||||||||||
| Comment by Peter Jones [ 30/Dec/11 ] | |||||||||||||||||||||||||||
|
James A vanilla 1.8.4 is certainly too old to interoperate with master. You would need at least 1.8.6-wc1 and preferably 1.8.7-wc1. Cray may attempt to heavily patch their 1.8.4 release in order to avoid rebasing but I think that it would be sensible to separate that exercise from the testing needed in order to get this code landed to master. Peter | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 30/Dec/11 ] | |||||||||||||||||||||||||||
|
Oleg's work around never worked on 1.8 clients. So far the Oracle 1.8.6 client works. I'm going to do more testing to make sure. Speaking of once my client side patch is okayed I support port it to the 1.8.X-wc branch. Right now the lustre utiles barf on large stripe directories. We will need that support for 2.1 clients. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 30/Dec/11 ] | |||||||||||||||||||||||||||
|
For my testing on a 2.1 client I create directory with 1036 stripes and then from 1.8.6 clients ran IOR to create single shared file. IOR was successful at creating this file of 1036 stripe on a Oracle 1.8.6 client. This is with the latest wide stripe patches including the dynamic buffer patch. I agree with you peter that the 1.8.4 problem should not inhibit the wide stripe merger. | |||||||||||||||||||||||||||
| Comment by Peter Jones [ 31/Dec/11 ] | |||||||||||||||||||||||||||
|
James Sorry if I was not clear enough. I really meant that you needed to use at least 1.8.6-wc1. The Oracle 1.8.6 release is a subset of this release and the Oracle release does not necessarily contain everything needed for compatibility with Lustre 2.x releases Peter | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 31/Dec/11 ] | |||||||||||||||||||||||||||
I did some experiments and found: The iozone test passed on both b1_8 and master branch. It also passed on master branch with the combined wide-striping patches applied (without the dynamic buffer patch): It turns out that the issue is a regression caused by the dynamic buffer patch in http://review.whamcloud.com/1808. We need figure out why the OBD_MD_FLEASIZE flag was not set along with the lov EA data. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 04/Jan/12 ] | |||||||||||||||||||||||||||
|
Since the new feature deadline is approaching large stripe count might not make it in. I like to ask my client side work to make it at least for 2.2 so that if wide stripe does end up in 2.3 the 2.2 clients will support large stripe count. | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 04/Jan/12 ] | |||||||||||||||||||||||||||
|
Issue | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 04/Jan/12 ] | |||||||||||||||||||||||||||
|
I've successfully formatted and mounted 2000 OSTs on master branch with the latest version of the combined patches (http://review.whamcloud.com/1842 patch set 8) but without the dynamic buffer patch, parallel-scale ior test passed with stripe count of -1: | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Will dynamic buffer be merged if it is fixed up after Jan 7. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Current status of the patches:
| |||||||||||||||||||||||||||
| Comment by Jian Yu [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
> Will dynamic buffer be merged if it is fixed up after Jan 7. I hope so. | |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = FAILURE
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = FAILURE
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 05/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : 8a1606a7cbbcaf418fefa5d97a2335df0c0edb09
| |||||||||||||||||||||||||||
| Comment by Mikhail Pershin [ 06/Jan/12 ] | |||||||||||||||||||||||||||
|
Yu Jian, am I right that bug with non-removed inodes are related to dynamic buffer patch? Is it reproducable with small amount of OSSs or only with big number? | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 06/Jan/12 ] | |||||||||||||||||||||||||||
Yes, Tappro. Without the patch, the iozone test passed with objects destroyed.
I could not reproduce the issue with 6, 20, 30 OSTs separately, but hit the issue on 40 and 200 OSTs (did not try other number). | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 10/Jan/12 ] | |||||||||||||||||||||||||||
|
The object unlink issue is being worked in I verified the patch for I'm testing 2000 OSTs against master branch with the following patches applied:
The iozone and ior tests also passed against 2000 OSTs (stripe count was -1) on master branch with the above patches applied: | |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 19/Jan/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Jian Yu [ 21/Jan/12 ] | |||||||||||||||||||||||||||
|
Current status of the patches:
| |||||||||||||||||||||||||||
| Comment by James A Simmons [ 23/Jan/12 ] | |||||||||||||||||||||||||||
|
The mds patch (1808) needs rebasing against master | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 08/Feb/12 ] | |||||||||||||||||||||||||||
Done. The patch set is pending reviews. | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 09/Feb/12 ] | |||||||||||||||||||||||||||
|
Got it. Should the util patch be ported to b2_1 so 2.1 clients can use large stripe support with 2.2+ servers? | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 10/Feb/12 ] | |||||||||||||||||||||||||||
|
We are trying to stick to the policy that new features are not being landed on maintenance branches. That said, since this is only affecting the user tools in a very isolated way, it could be considered for the 2.1.2 release, since 2.1.1 is already undergoing release testing. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 21/Feb/12 ] | |||||||||||||||||||||||||||
|
Current status of the patches:
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 06/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Nathan Rutman [ 18/Apr/12 ] | |||||||||||||||||||||||||||
|
Is this resolved? Included in 2.2, correct? | |||||||||||||||||||||||||||
| Comment by James A Simmons [ 18/Apr/12 ] | |||||||||||||||||||||||||||
|
One patch left http://review.whamcloud.com/1808 which didn't make it into 2.2. I hope it will merged into 2.3 development branch. Also you have to do a special format stripe to enable large EA for mkfs.lustre. Its not enabled by default. | |||||||||||||||||||||||||||
| Comment by Jian Yu [ 18/Apr/12 ] | |||||||||||||||||||||||||||
|
Hello Nathan,
Yes, the large xattr (aka wide striping) feature is included in Lustre 2.2 which supports the maximum stripe count for a single file up to 2000 OSTs. However, this feature is disabled by default at mkfs.lustre time. In order to enable this feature, the "-O large_xattr" option needs to be set on MDT either with --mkfsoptions at format time or via tune2fs. There are still some improvements on this feature: | |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 29/Apr/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
| |||||||||||||||||||||||||||
| Comment by Jian Yu [ 02/May/12 ] | |||||||||||||||||||||||||||
All of the patches have been merged. Let's close this ticket. | |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Build Master (Inactive) [ 02/May/12 ] | |||||||||||||||||||||||||||
|
Integrated in Result = SUCCESS
Oleg Drokin : d40ad918bd688d9b5b3307ded042dd6d03cc414c
| |||||||||||||||||||||||||||
| Comment by Alexey Lyashkov [ 15/Nov/12 ] | |||||||||||||||||||||||||||
|
e2image tool from a e2fsprogs broked after that change, so -r / -Q options don't copy a inode contents to the image. | |||||||||||||||||||||||||||
| Comment by Peter Jones [ 19/Nov/12 ] | |||||||||||||||||||||||||||
|
Shadow could you please open a new ticket for any issues relating to this work? We can create links back to the original ticket but it makes it easier to track - thanks! | |||||||||||||||||||||||||||
| Comment by Alexey Lyashkov [ 19/Nov/12 ] | |||||||||||||||||||||||||||
|
Peter, I already create one and submit a patch, but jenkins looks broken to test e2fsprogs patch. | |||||||||||||||||||||||||||
| Comment by Peter Jones [ 19/Nov/12 ] | |||||||||||||||||||||||||||
|
Ah yes - | |||||||||||||||||||||||||||
| Comment by Andreas Dilger [ 12/Aug/16 ] | |||||||||||||||||||||||||||
|
http://review.whamcloud.com/2331 LU-80 tests: support regression testing on wide striping This patch enables large_xattr feature at mkfs.lustre time to support regression testing on wide striping. It is intended to be built by Jenkins and performed by autotest system. Signed-off-by: Yu Jian <yujian@whamcloud.com> Change-Id: Iea7042891bab6fdcb19fb9dae7e6d54c02a99267 |