 Thank you very much. Hi, my name is Wojciech Trefny and today I will tell you something about Alaconda Insta and the storage configuration you are planning to add to it. Alaconda is a Fedora, Rails, CentOS, etc. installer. There are more projects named Alaconda, so if you are here for different projects, then sorry, read the description of the talk next time. And in this presentation we will discuss mostly this part of Alaconda that nicely says no disk selected and it's a storage configuration for installation. So if you actually click on this part of installation, you will end up here, you can select which disks you will use for your installations and click on some other nice icons, I will describe them in detail. For most of users that install Fedora, the installation process is really simple. You have either only one drive that is completely empty or you have some one other system like windows or other Linux distributions and you want to install either delete it or install Fedora next to it. So you just need to, if your disk is empty, you just select automatic installation, nothing happens. If you already have something on the disks, you get this dialog and you can either delete it or shrink something, etc. It's really simple. But the problem is if your configuration is more complex. I don't know if you can read the screenshot, it's actually output of LSBLK command line 2 that lists Oreo block devices. This is screenshot from one of my testing virtual machines that has about 25 hard drives and on it some LVM, RAID, battery FS, just everything. And if you have something like that, this is actually quite crazy but you can have more disks and some RAID, some LVM and want to use it. It's actually not so easy with Anaconda. Or if you have some specific needs you need, I don't know, use more types of storage like RAID, LVM. It's not so easy. For these cases, we have something called custom spoke or manual installation. It works quite differently than you might know from other storage configuration. It works on so-called top-down principle. You don't actually configure to storage. You just select what mount points you need to create, if you need home, swap, route, etc. And before that, you need just to specify what type of storage you need, if it's partitions, LVM, battery FS, etc. And then you configure features that you need from Anaconda. It's like how big you need the mount points, what fire system you need, if you need some encryption, if you need some redundancy, RAID, etc. And then just based on it, Anaconda will create a whole storage. If it looks like that, if you installed Fedora, probably you did. You are familiar with it. Two mount points specified, route and boot and swap. And there on the right side you'll see some features you need, but capacity, type, LVM, power system, etc. And as I said, for more complex configuration this is quite hard to use because if you have more drives, more operation system installed, it's not so straightforward. People, quite often people tell us that the problem with Anaconda is it's designed by developers and we don't know how people use systems and stuff like that. It's really badly designed and we should hire some UX specialists to do the design for us. So you actually did that. If you know Maureen Duffy, she designed the Anaconda installer. You probably don't see the blog, it's very small, but if you google the name or if you look at the slides after that, you can look at her blog. There are a lot of designs that didn't make it to Anaconda, a lot of alternative ways how to display storage. It's really nice, you can try to look at it and maybe you will find something that suits you more, suits you better than the configuration we have now. But it's really to come up with some one way how to please all the people that work with Anaconda and want to configure storage. That's probably what I said before. If you have some unusual type of configuration, it's quite too hard to use custom spoke. It doesn't allow you to control everything. Here on the right side you can specify quite a lot of things, but it's not everything. And if you have complex storage, it's not very good visualization. Here on the right side you can see there are just three operating systems installed on your machine. And it's really hard to navigate if you want to delete something and something new. It's quite not so easy. And the other thing here I didn't mention is you can't actually configure something that's not related to the installation. As I said, you specify mount points, but if you want to create something that's not mounted in the system, if you want, for example, to have some free space in your system for some future configuration, it's not possible in custom spoke. So there are some different approach to storage configuration. I call it a classic approach. And it's something you all know. It's manual configuration of the storage. You need to do all by hand. In case of early end, you need to create some partitions for your physical volumes, create the volume groups, and then create all the logic volumes one by one. For example, you know, G-parted graphical application that does that. This is screenshot of G-parted. Can someone tell me what's wrong with this screenshot? Someone not from my team. Okay. Someone not from Anaconda team. The problem is, you see, there are two partitions. One is for boot, it's on XFS. And the second is Cript-Lux. And it's actually not just a partition with nothing. It's LVM encrypted. And that's all you can get from G-parted. You can't use it for LVM. It doesn't support it. It's based on lib-parted. It's just for partitions. So it's not G-parted. It's fault. But if you want something more complex. Yeah? So, but there's, of course, a better tool. It's called Blivitt-Gui. It's the best tool for storage configuration. I know that. I wrote it. It uses the same library that Anaconda uses. It's called Blivitt. Because that's why it's called Blivitt-Gui. And so it supports all the technologies like LVM, but RFS, right? And it can do in-memory storage model. And you can create everything and then write the changes to the disk after that. And it's the same bottom-up type of configuration where you need to start from the bottom and create all the parts of the technology. It's in Fedora since Fedora 21. It looks like this. Very similar to the G-parted. And this is what is this talk mainly about. We decided to add Blivitt-Gui to Anaconda. It will be a new feature in Fedora 26. We are working on it. Now it should be in Rohit probably next week or a week after that. But it won't replace the current custom spoke. It will be the next option, the third option. Right, next to it for people that needs more control, that needs some special configuration. It's not only the another UI when you can work a little bit different. It also allows things that Anaconda currently can't do or it's not possible to do it from the UI. Like, for example, you can specify LVM rate using Blivitt-Gui, create LVM cache and stuff like that. The nice thing of it is that Blivitt-Gui is written in Python. It uses Blivitt the same library that Anaconda uses and it's written in GTK. So it's very easy to edit to Anaconda. It's Python. You can just import it in GTK. You can edit the existing widgets into Anaconda. Pretty simple. The main difference you will see in Anaconda is on the storage scope. Well, originally you had only two options, the automatic partitioning and the manual partitioning. And you will add a new option, third option. It now says use Blivitt-Gui, but it will say something like expert partitioning or stuff like that. I don't know what. And then you will get Blivitt-Gui, Anaconda. You can configure everything you want. This is how it looks when you try to add new devices. This is LVM. You can create one directly. I expected I would talk quite longer, but it's okay because I have live demo for you. So you can now see how it works and how it crashes every time. Damn it. Yeah, definitely. It's actually quite hard to run Anaconda on existing installation. Yeah, it's quite hard to install system from install system. So this is the storage scope. I have three virtual drives with some really nice names. And I will choose I want to use Blivitt-Gui. People are used to and it's different approach. And I actually quite like the approach when you specify just demand points because it's what most people do. You know you need like root, home, swap, and I don't know what boot and what features you need from. But a lot of people ask us for something like they can get more control. So this is it. You can get that very quickly. Whereas in Blivitt-Gui, since you have to create every layer separately, it's like a lot of training. So you can see I have three hard drives. Here they are empty. So I can try to create something that makes sense. So I for example want probably my boot on rate. So on all three drives I have. I want it, I guess, rate one. And I want it to be in one gigabyte. Interesting. Yeah, I don't know. It would probably crash. So, yes, but it's hard to... These sliders are because it's rate. So you can see it's rate one. So it's all same size on all the three disks. And the slider at the top that doesn't work, they just show how much space you get available if I choose rate zero. Yeah, you see it's combined. Can you choose rate five? Sorry? Can you choose rate five? It works too. Yes. You can see I have three 20 gigs hard drives and it shows 40 gigs. How much? Yes. It's not 40 gigs exactly because for metadata I will take some, but it's like approximation. So, for rate I think advanced options is just setting chunk size. Yes. So XFS I can get with some label as a matter. So and it created rate for me. You can see there's two gig size rate array mounted at boot. It's two gig because I chose the rate five. And in the space I have, I can create some LVM. I could either create, do it everything manually and create partition with LVM format. But this part is actually like two manuals. So I have some shorter way how to do that. And you can create volume group directly. Again, I will all three drives. No. I can choose. I can encrypt it and choose some very secure password. It's very secret. No one would try just one letter. And this is newly created volume group. It's empty. So I can add some LVs. And I probably want some home too. Oh. Oh. It works. It checks the round point. No, it will crash. And it did. I told you this will happen. And you can see that the exception reporting works just fine. Yeah. We can report back. Yeah. Using clip report has like abort from the GNOME. That's even better. Now my system froze. Yeah. Great. Yeah. Okay. So demo over. Your laptop over. Probably. So I hope you have questions. Yes. I think some details in the event. Yeah. The J-Corp is not. I don't want to pick anything manually in the event. Just because the report. The question was why don't we allow some automatic partitioning and then changing some small features using the way. It won't be able in federal 26, but this should be able in federal 27. Right now you can. I can't show you unfortunately. Yeah. I can't show you in presentation either because. Right now it's, you can finish the changes in the grid and go back to story spoke and choose the, some different type of partitioning, but it will, now it will erase everything you did in the different partitioning, but everything might change it. So you can go to the custom spoke, let Anaconda creates everything automatically, then go back and use the way. The problem here is that we believe we can do more stuff. So in case you can do some configuration using the grid and go back to custom spoke and it won't be able to show you everything you did. So this might be a problem. We might be able to fix it. Yeah. Maybe. The way might be to just add some simple, because we already have the functionality and Anaconda to create a storage configuration automatically. So we can add just the same button to the grid. Design looks very nice. So I really wish it had worked and it would be successful because the current design is not really part of the map list. Yeah. I will continue to, it would be your point actually that is there a possibility in the future that we will just squeeze all the options in the grid and add something like, you know, a level of setting, like setting basic. And then with the bases, you could also choose the automatic partitioning or just use the basic level, but configure it manually. But just, you know, very simple things. The same way as it works, but I will configure it manually option right now. And then if you really are, if you really do know what you're doing, you would just switch to the settings level at once and you would do all this kind of stuff you showed us. Yeah. The question was if we plan just to not have the custom spoke as two separate configuration options but to squeeze it in one and it would be possible to run the grid or some advanced configuration from the custom spoke. It might be possible. You might work on that. The problem is it would take like much more work. This was exactly creating new spoke is very easy and we already had the grid working as the standard application. So it was just instead of creating it in its own window, it was embedded into Alaconda and it works. So it's, it was quite easy. Doing this changing custom spoke would be harder. We can call one of them easy mode and the other one is quick start mode. Everybody is an expert. Yeah. You're going to get nothing from that. I mean, even if the show advanced options, everybody just clicks it and think they are advanced. Yeah. So just keep the name when you split it through it because the people who really know what split it is about to use it. Yeah. We know at the others we're not there to actually get. I think it's actually better than some expert mode or anything like that. It's just, it says it all. They have an advanced storage screen which is for connecting advanced storage devices. So it might call into that. So it's better to call it and do it with it. So, other questions? Would it be possible to just switch to terminal and create the volumes and process them with Microsoft? Yeah. It is possible right now. You can do that. Yeah. You can do it in Alaconda now. You can switch to terminal, do everything manually from terminal. In custom, in custom spoke, we have a button to read everything from this. Yes. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Oh, it starts working. Okay. Yeah. Okay. Yeah. Yep. Yeah. Yeah. What commands are going to be used? If you divide Veritas, it's going to be three pairs. What is going to happen? As an expert, check that your pool is actually... No, it's not possible. It uses Blivet, and there's some internal state. It will give you... you will see summary of the actions, what it's going to do, but it's from Blivet, so... And is there the summary? Yes. If you click down again, it will show you the summary, like creating LV on something, or creating all the group days on top of this and this stuff, I guess, also part of that. And will it be too hard? Will it go a little bit further? And from the Blivet export, what actions are going to be happening on the piece? Yeah. So that seems like a shell story, right? Yeah. Yeah. So these are the actions. These are the actions. There are some actions created by Anaconda. It's a new partition table on every disk, and you can see it this way, what it does, actually. And because we can do a mock it to the command. So, yeah, it's not that it's... Oh, yeah, Blivet is using a C-Library blockdev to call, so it might be... Yeah. We can do it manually to write somewhere what commands we are going to execute, but... And thanks, Bill, for being there, until we give us a comment at the end. It's not running too long. Yeah, I forgot to repeat the question. It was if it's possible to see what commands will Anaconda run or Blivet will be able to run if you do stuff like that. In your case, it would not run. Yes. So we probably have one time for the last question. Yes? I've got historically bad experience. Since I didn't talk to Terra, I used LTM, and once new Terra was released, I tried to install new Terra, and I understood that Anaconda could use some part of the LVM. Every time I reclaimed the space, it tried to squeeze the new installation into new partition, and it just simply ignored the LVM, and then there is quite some free space on the LVM. I think there were four... So the question was if it's possible with Anaconda not just with Blivet to reuse existing LVM. It's possible, but you have to use the custom spoke. It's not possible from the reclaimed space dialogue. Yeah, I know, it's not easy. By the way, if you have some... There are some bugs in Anaconda right now you hate, or it's not even possible to do something in Anaconda that Blivet will have the same bugs because it's using the same algorithm. We already had last questions, and you worked with me. So... Thank you for your attention. If you have some more questions, you can find me outside, talk to me. If it's really cool, I hope so. What? If it's really cool, I hope so. I don't know how it will look. But it would be nice to think about how Anaconda saved the system of using it now and then. It's really nice, when you don't have to do anything. No, it's the systems that are very important to the people who understand it, and the people who don't understand it. Thank you for what you said, Eric. Thank you so much. Thank you. Thank you.