UBI: Single versus Multiple Images
Doug Kehn
rdkehn at yahoo.com
Wed Jun 6 07:53:12 EDT 2012
Hi Artem,
> From: Artem Bityutskiy <dedekind1 at gmail.com>
> Sent: Wednesday, June 6, 2012 4:14 AM
>
> On Tue, 2012-06-05 at 06:21 -0700, Doug Kehn wrote:
>> Hi Everyone,
>>
>> I have the following NAND flash MTD layout (presently JFFS2):
>>
>> * Boot-loader
>> * Kernel
>> * Root file-system (rootfs)
>>
>> * Data
>>
>> I'm going to switch from JFFS2 to UBI/UBIFS. I'm wondering if it
> is
>> better to create a single UBI image containing both rootfs and data
>> volumes or to create separate UBI images (each with a single volume)
>> or is the answer it depends?
>
> Are you actually talking about how to partition your flash - whether to
> have one partition or several?
>
I'm asking about whether to create one UBI image that contains multiple volumes or create UBI multiple images that contain a single volume. The layout is:
mtd0 boot-loader
mtd1 kernel
mtd2 rootfs
mtd3 data
Thus, is it better or does it matter if a single ubi.conf is used to configure rootfs and data or if multiple ubi.conf are used (1 for rootfs and 1 for data).
>> The data volume will be used for logging data. The volume won't
>> completely fill as old data will be purged to make room for new data.
>> For the single image multiple volume case, if I understand the
>> documentation correctly, UBI will use all PEB from both volumes for
>> mapping per-volume LEB,
>> correct? If my understanding is correct, then it's possible, after
>> enough time, maximum PEB erase count will be reached and both rootfs
>> and data volumes will be read-only? If the goal is to keep the rootfs
>> volume writable, even if the data volume become read-only, then would
>> it be better to create multiple UBI images? Or is my understanding
>> all wrong?
>
> I do not really understand the questions. UBI will do wear-leveling
> across the mtd device it is attached to. If you have one MTD partition
> which spans entire flash, you'll have wear-leveling across entire flash.
> You will ave /dev/ubi0 represinting the UBI device,
> and /dev/ubi0_0, /dev/ubi0_1, etc for each volume for this UBI device
> number 0.
>
> If you partition your flash, then each partition will be managed
> independently, and you'll have wear-leveling per-partition. So one
> partition may wear out faster than another. You'll
> have /dev/ubi0, /dev/ubi1, etc for each partition. Then if you create a
> volume in each UBI device, you'll have /dev/ubi0_0, /dev/ubi1_0, etc for
> each volume.
>
This clears up my confusion.
Thanks,
...doug
More information about the linux-mtd
mailing list